如果你接到一个修复代号为1的任务,那么想创建一个分支issue-1来处理,但是,现在在dev上进行的工作还没完成,无法完成提交。如下图
则需要用git stash把工作现场先储存起来,等以后恢复现场后继续工作。如下图,执行git stash后工作区为空
首先确定要在哪个分支修复bug,假设是master,就从master创建临时分支,并在上面修复bug
修复完成后,切换到master分支,并完成合并,最后删除issue-1分支
然后,问题来了,因为dev是从原来的master拉下来的,是存在已经修好的那个bug的,如果这里没有将dev与修复好bug的master合并一次,而是直接在dev分支恢复现场工作,这样原来的bug还存在dev中,以后合并可能会出现错误,所以正确的执行步骤是:1.跳转到dev分支 2.将dev分支和修复好bug的master合并 3.再恢复原来的工作现场 这样一来dev原来的bug也被修复了,如下图
用git log 可以查看分支的合并情况
命令总结:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit
将当前工作现场“储藏”起来:git stash
查看当前工作状态:git status
恢复上一个工作区内容:git stash pop/git stash apply
二者的不同是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;用git stash pop,恢复的同时把stash内容也删了
查看储藏区内容:git stash list