git分支管理

1 创建与合并分支

1-1我们创建dev分支,然后切换到dev分支
git checkout -b dev
创建分支
git branch dev
切换分支
git checkout dev
查看当前分支
git branch
把dev分支的工作成果合并到master分支上
git merge dev
删除dev分支
git branch -d dev

2 创建,切换分支最新的命令

创建并切换分支
git switch -c dev
创建分支dev
git branch dev
切换分支
git switch master

3 分支冲突

查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit

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

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

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

3-1 分支管理策略

仅用表示禁用Fast forward合并分支
git merge --no-ff -m "merge with no-ff" dev

3-2 分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:
image.png

4 bug分支

可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash
查看分支之前工作区的存储
git stash list

4-1恢复

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

恢复指定的stash
git stash apply stash@{0}

复制一个提交到当前分支,后面是提交id
git cherry-pick 4c805e2

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

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

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

5 Feature分支

添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。

6 多人协作

原文地址:https://www.cnblogs.com/hellosiyu/p/13049224.html