Git--分支管理

分支管理


主分支

最开始,项目只有一条分支叫主分支,即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(+)
Fast forward 这种模式下,删除分支后,会丢掉分支信息。如果 禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样分支历史上就会保留分支信息。
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(+)

在这里插入图片描述


参考网址: https://www.liaoxuefeng.com/

猜你喜欢

转载自blog.csdn.net/Meteor_s/article/details/83030175