Git04-分支管理

Git分支管理

分支是指大家从公共远程库中copy一个属于自己的分支,然后每个人都可以在自己的分支上工作,相当于每个分支都是“平行世界”

Git鼓励大量使用分支:

查看分支:git branch

git branch -r //查看远程所有分支

git branch -a //查看本地和远程的所有分支

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

用git log --graph命令可以看到分支合并图。

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

1
2
$ git merge --no-ff -m "merge with no-ff" dev
# 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

使用Bug分支

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;

在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。