git工作流程及面试题

        git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

项目开发中起到的作用:代码管理,上传,下载,版本回退.....

一、git框架

参考大神的图

二、git工作流程

三、提交时发生冲突如何解决?

        原因

        因为在合并分支的时候,master和dev分支恰好有人都修改了同一个文件,git不知道以哪一个文件为准,就产生了冲突。

        解决

        发生冲突时,对比本地文件和远程分支上的文件,然后把远程分支上的内容手工修改到本地文件,然后再提交冲突文件。必要时可以和同时沟通。

git stash  //把工作区的修改提交到栈区,目的是保存工作区的修改
git pull  //拉取远程分支上的代码并合并到本地分支,目的是消除冲突
git stash pop  //把保存在栈区的修改部分合并到最新的工作空间中

四、Git和SVN的区别

Git SVN
1. Git是一个分布式的版本控制工具 1. SVN 是集中版本控制工具
2.它属于第3代版本控制工具 2.它属于第2代版本控制工具
3.客户端可以在其本地系统上克隆整个存储库 3.版本历史记录存储在服务器端存储库中
4.即使离线也可以提交 4.只允许在线提交
5.Push/pull 操作更快 5.Push/pull 操作较慢
6.工程可以用 commit 自动共享 6.没有任何东西自动共享

 五、git功能分支操作

master  //默认的主分支
git branch  //查看本地分支
git branch 分支名称  //新建分支
git checkout 分支名称  //切换分支
git checkout -b 本地分支名  //切换分支
git checkout origin 远程分支名  //切换分支
git branch -r   //查看远程仓库的分支
git push --set-upstream origin 分支名称  //本地分支提交到远程仓库
git branch -d 分支名称  //删除本地分支
git push origin --delete 分支名称  //删除远程仓库的分支

六、 合并分支方法

        git merge 分支名称

        如果当前是在master分支下写入:git merge dev,那么master和dev会进行合并,相当于master + dev。

七、在Git中,你如何还原已经 push 并公开的提交? 

        删除或修复新提交中的错误文件,并将其推送到远程存储库。

git commit -m "commit message"

        创建一个新的提交,撤消在错误提交中所做的所有更改。

git revert <name of bad commit>

八、git pull 和 git fetch 有什么区别? 

        git pull命令从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。

  git fetch也用于相同的目的,但它的工作方式略有不同。当你执行git fetch时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在git fetch之后执行git merge。只有在对目标分支和获取的分支进行合并后才会更新目标分支。

git pull = git fetch + git merge

九、其他常见命令

git diff index.js   //查看某一个修改文件
git diff   //查看所有修改文件
git log   //查看修改历史
git reflog   //查看修改历史【简单形式】
git reset --hard HEAD^   //回到上一个版本
git reset --hard 版本号   //回到指定版本

 十、gitflow工作流

        gitflow流程使用一个中央代码仓库,它是所有开发者的信息交流中心。跟其他的工作流程一样,开发者在本地完成开发,然后再将分支代码推送到中央仓库。唯一不同的是项目中分支的结构。

序号

名称

内容

1

master

用于保存上线版本代码,创建了dev分支

2

develop

用于保存相对稳定版本的代码,所有的feature都是dev分支创建的

3

feature

用于开发某几个功能,不同的功能可能会创建不同的分支

4

release

用于代码上线前的准备(测试,bug修复),是dev创建的

5

bugfix

用于修复不紧急bug

6

hotfix

用于修复紧急bug

源自大神的图

猜你喜欢

转载自blog.csdn.net/m0_73460278/article/details/126669347