暂时保存 Git 更改
查看【Git】专题可浏览更多内容
暂时保存更改
在工作中可能会遇到紧急加塞的任务,这时工作区或暂存区的修改可能还不足以成为一个历史版本,如果你是从前文一路看下来的就会知道,有一个建议就是不要将一个未完成的工作提交成版本历史,即便是一个大模块,也应该正确分割成小的完整的逻辑块来分别提交。
如果还不能提交成为一个版本历史,但这时的加急工作任务需要一个「干净的工作区」,就可以使用 Git 的「贮藏 (Stash)」功能,贮藏类似于一个高级的剪贴板,可以将一些内容暂时剪切起来,在需要的复制粘贴出来。
创建一个贮藏
git stash
使用贮藏后可通过 git status
命令看到,此时工作区已经是干净的了。
查看贮藏列表
使用 git stash list
会显示贮藏列表
git stash list
stash@{0}: WIP on master: 40f6729 添加正文内容
stash@{1}: ...
stash@{2}: ...
(END)
贮藏列表会显示每次贮藏的所在分支、Commit ID 以及提交信息,最新的贮藏永远是「stash@{0}」,而上一次的会变成「stash@{1}」,以此类推...你可以通过分支和提交信息判断贮藏的内容是什么,然后使用数字来调用它们。
切回贮藏
当你完成加急任务可以换回之前贮藏的内容时有两种方式:
切回最近的贮藏并移除该贮藏
如果只是一个非常简单的加急任务,快速解决后就想要调回贮藏内容,并且之后都不在使用这次贮藏,那么可以使用 pop
:
git stash pop
切回某个贮藏
如果所贮藏的内容存在可能还会多次使用的情况,并不想在切回后删除,或是并不是最近的一次贮藏,那么可以使用 apply
:
# git stash apply <stash-name>
git stash apply stash@{2}
删除指定贮藏或清空
如果现在想要删除指定的呢?
# git stash drop <stash-name>
git stash drop stash@{2}
如果都不想要了,一次清空吧,那么可以:
git stash clear