所谓bug分支,就是我们在开发的过程中,可能突然遇到一个需要解决的bug,但是我们手头的开发工作还没有完成,这个时候我们需要创建新的bug分支进行修复,修复完bug后,我们将bug分支进行合并,然后删除。当手头的工作没有完成时,我们需要先把工作现场git stash
一下,然后去修复bug,修复完成后,再通过git stash pop
,回到工作现场。
比如我们在test1分支下添加了一行``,但是我的开发工作尚未完成,这个时候出现了一个bug需要去修复,所以我先git stash
保存一下工作现场
然后我们切换回主分支,创建一个
issue1
分支用于解决bug。解决完bug后,再切换回主分支,将
issue1
分支合并到主分支。注意,我们合并代码的时候加了一个参数--no-ff
。合并分支的时候,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
合并就看不出来曾经做过合并。使用--no-ff
合并时会自动创建一个新的commit,所以要加上-m
并写上描述。合并完成后,我们删除
issue1
分支,再切换回test1
分支,发现我们在test1
分支上做的开发内容并没有还原。我们想要恢复之前的工作环境,可以使用
git stash apply
进行恢复,但是这样恢复,不能把之前打上stash
的工作环境删除,所以要使用git stash drop
将打上stash
的工作环境删除。也可以合并两步操作使用git stash pop
恢复环境以后删除这个环境。当然也可以使用git stash list
查看分支上保存的环境。然后我们可以看到工作环境已经恢复,可以继续愉快的开发了。开发完成后就可以提交合并到主分支了。
Feature分支:当我们开发一个新功能的时候,最好新建一个分支。如果要丢弃一个没有合并过的分支,可以通过
git branch -D <name>
强行删除。在多人协作的团队开发过程中,我们还会用到一些其他的功能,如我们要查看远程库的信息,使用
git remote -v
。本地新建的分支如果不推送到远程,对其他人就是不可见的。从本地推送分支,使用git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交。在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致。建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
。从远程抓取分支,使用git pull
,如果有冲突,要先处理冲突。这些命令都比较见名知意,这里就不再演示了。