当我们合并分支的时候,Git一般采用 Fast Forward 模式,就会造成分支信息丢失,通过修改,就可以让Git在merge时生成一个新的commit,就可以从分支历史上看到分支信息。
我们接上面分支合并的时候,将
git merge dev
改为git merge --no-ff -m "commit contents" dev
这样子,就能保留分支上的信息.
假设我们正在dev分支上工作,这时候工作一半的时候,来了一个新的任务,我们就需要进行现在保护和恢复了。
首先,储存下正在工作的手头任务
git stash
假设我们要在master上进行新的任务,就在master创建一条分支
git checkout -b new-01
然后我们就可以在新的分支上进行任务处理,add,commit
接下来就是切换到master,合并分支
git merge --no-f -m "finished new test" new-01
然后就可以删除这条分支git branch -d new-01
这时候就可以切换到我们自己的任务分支,继续上次未完成的任务了那如何恢复之前保存的现场呢
git stash list
利用stash list 就可以看到我们已保存的现场了,可以多次保存stash
git stash apply
可以恢复并保留stash的内容git stash pop
就是恢复并且删除stash的内容要留意的是,stash只能保留被Git管理的文件,如果没有add到stage,就不能stash了。