9.2 使用git stash

命令git stash可以用于保存和恢复工作进度,掌握这个命令对于日常的工作会有很大的帮助。关于这个命令的最主要的用法实际上通过前面的演示已经了解了。


命令:git stash


保存当前的工作进度。会分别对暂存区和工作区的状态进行保存。


命令:git stash list


显示进度列表。此命令显然暗示了git stash可以多次保存工作进度,并且在恢复的时候进行选择。


命令:git stash pop[—index][<stash>]


如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除。

如果提供<stash>参数(来自于git stash list显示的列表),则从该<stash>中恢复。恢复完毕也将从进度列表中删除<stash>。

选项—index除了恢复工作区的文件外,还尝试恢复暂存区。这也就是为什么在本章一开始恢复进度的时候显示的状态和保存进度前的略有不同。


命令:git stash[save[—patch][-k|—[no-]keep-index][-q|—quiet][<message>]]


这条命令实际上是第一条git stash命令的完整版。即如果需要在保存工作进度的时候使用指定的说明,必须使用如下格式:


git stash save "message…"


〇使用参数—patch会显示工作区和HEAD的差异,通过对差异文件的编辑决定在进度中最终要保存的工作区的内容,通过编辑差异文件可以在进度中排除无关内容。

〇使用-k或—keep-index参数,在保存进度后不会将暂存区重置。默认会将暂存区和工作区强制重置。


命令:git stash apply[—index][<stash>]


除了不删除恢复的进度之外,其余和git stash pop命令一样。


命令:git stash drop[<stash>]


删除一个存储的进度。默认删除最新的进度。


命令:git stash clear


删除所有存储的进度。


命令:git stash branch<branchname><stash>


基于进度创建分支。对了,还没有讲到分支呢。;-)