分支管理
主分支
最开始,项目只有一条分支叫主分支,即master分支,HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
基本指令
- git branch:查看分支
- git branch <name>:创建分支
- git checkout <name>:切换分支
- git checkout -b <name>:创建+切换分支
- git merge <name>:合并某分支到当前分支
- git branch -d <name>:删除分支
解决冲突
在dev分支开发并且提交文件后,转向主分支开发。主分支提交一次文件后,想要将dev分支融合到主分支,这个时候master分支和dev分支的文件极有可能产生冲突,主分支执行 git merge dev 命令后,会提示:
自动合并 file1
冲突(内容):合并冲突于 file1
自动合并失败,修正冲突然后提交修正的结果。
这个时候就需要手动合并冲突文件,此时查看冲突文件可以发现冲突内容加了标识符分隔开:
<<<<<<< HEAD
=======
>>>>>>> feature1
冲突合并后,git add file ,git commit 提交即可。
git log --graph --pretty=oneline --abbrev-commit
管理策略
分支融合时,Git默认会使用 Fast forward 模式。
root@ubuntu:/home/xinje/Project/test# git merge dev
更新 81cda97..01ddbd8
Fast-forward
file1 | 1 +
1 file changed, 1 insertion(+)
root@ubuntu:/home/xinje/Project/test# git merge --no-ff -m "merge with no-ff" dev
Merge made by the 'recursive' strategy.
file1 | 1 +
1 file changed, 1 insertion(+)