多人协作怎么进行分支管理的呢?
首先,master主分支上一般是稳定的系统,不会直接在上面开发新功能,一般我们新建一个开发的分支,例如dev。接下来开发人员各自新建一个分支,例如张三新建一个本地分支名为zhangsan,李四新建一个本地分支名为lisi,add和commit操作都是在本地分支上进行。张三每开发完一个小功能后,再使用git checkout dev-->git merge zhangsan-->git push dev进行对代码进行提交合并,张三不需要push自己本地的分支zhangsan。
假如张三突然接到一个紧急的任务,master上有一个重大的bug,但是正在开发的功能还没有开发测试完毕,不能push合并到dev上,这个bug可能会跟正在开发的功能上有交集,放弃正在开发的代码是不可能的,但是也不能在现有的开发进度上做修复bug工作,我们希望保存现在的开发进度,回到master的最新版本,修复完bug之后,再复原开发进度。这个功能在git是可以实现的:
1、先保存当前工作进度:
$git stash
2、切换回master
$git checkout master
3、新建bug分支
$git checkout -b bug-01
4、修复完成之后,切换回zhangsan分支
$git checkout zhangsan
5、还原开发进度
$git stash pop
相当于执行以下两条命令
$git stash apply
$git stash drop
如果我们保存多个开发进度,可以使用
$git stash list
查看,然后在指定恢复某个工作进度,恢复之后可使用drop进行删除。
$ git stash apply stash@{0}