Git Stash 的使用
1. 有虚圈,不切换
在使用 Git 时,如果有未提交( 包括 Unstage 和 Staged )的文件时,不要切换分支( 也不要去「翻旧账」)。
简而言之:有虚圈,不切换。
之所以有这样的惯例原因有二:
有可能你会切换失败,如上图,你想切都没得切。这是因为你的未提交文件和你要切换的那个分支的文件有内容冲突。
如果没冲突,你能切换成功,但是会导致逻辑混乱。初学者一不小心,后续操作就会出状况,到时候又是一堆麻烦要解决。
什么情况下会出现「有虚圈,需要你切换」的场景?常见两种场景:
你在你的开发分支上开发到一半,需要同步远端 master 分支代码。此时,你需要从你的开发分支切换到 master 分支,但是你的开发分支上有「虚圈」。
手头的工作被打断,需要紧急修复 master 分支上的 bug 。此时,你需要从 master 分支上新建分支,再从你的开发分支切换到这个新分支,但是你的开发分支上有「虚圈」。
再重复一遍:有虚圈,不切换。
2. Git Stash 的作用
这里,我们面对着一个矛盾:有虚圈,不切换,但是我们当前的工作任务又需要我们切换分支( 或去「翻旧账」)。怎么办?靠 git stash
命令。
git stash
用于想要保存当前的未提交( Unstage 和 Stage )的修改。
git stash
将本地的修改保存起来,并且将当前代码切换到 HEAD 提交上,即,你磁盘上的文件会恢复成未修改之前的样子。
简单来说
使用 git stash 还你一个干净的工作目录!
3. Git Stash 的使用
有虚圈,不切换。
git stash
存档,暂存未提交修改。切换,搞事情;搞完事情,切回来。
git pop
读档,继续完成「当年」未完成的工作。