如果你有一个bug任务,你想创建一个分支issue-101来修复它,但是你当前正在dev上进行的工作还没有完成而不能提交,bug需要现在修复,所以现在你需要暂停dev上工作,Git提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:$ git stash

  假定需要在master分支上修复,就从master创建临时分支:

$ git checkout masterSwitched to branch 'master'$ git checkout -b issue-101Switched to a new branch 'issue-101'

  现在修复bug,需要把“Git is free software ...”改为“Git is a free software ...”,然后提交:

$ git add readme.txt $ git commit -m "fix bug 101"

  修复完成后,切换到master分支,并完成合并,最后删除issue-101分支:

$ git checkout master...$ git merge --no-ff -m "merged bug fix 101" issue-101...$ git branch -d issue-101Deleted branch issue-101 (...).

  Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

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

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