如果你想记录当前的工作目录的状态,但是又想回退到之前的干净的工作目录状态的时候,git stash 命令就可以派上用场了。
记录当前的工作目录状态:
$ git stash save
查看工作目录的缓存列表:
$ git stash list
stash@{0}: WIP on mytest: 08a0663 Update to 2.0.4 version
stash@{1}: WIP on mytest: 08a0663 Update to 2.0.4 version
stash@{2}: WIP on 2.0.4: 08a0663 Update to 2.0.4 version
查看stash list中的某一次stash:
$ git stash show // 默认查看最新的一次的stash
LICENSE | 1 +
1 file changed, 1 insertion(+)
$ git stash show stash@{1}
README.md | 1 +
1 file changed, 1 insertion(+)
恢复stash的状态:
$ git stash apply // 如果你不指定的话,默认apply最近一次的stash
$ git stash apply stash@{1} // 指定某一次的stash
删除stash记录:
$ git stash drop // 如果不指定,默认drop最近一次的stash
Dropped refs/stash@{0} (76a5adad541b4aa38820a7c211a3be4488e26d25)
$ git stash drop stash@{1} // 指定删除stash@{1}的记录
Dropped stash@{1} (81627de8f6562e4d2e73ef0bb52e3d588479e8cc)
弹出stash记录,与git stash apply不同的是,它在取出指定的stash记录后,会在stash列表中删除这条stash记录:
$ git stash pop
$ git stash list
stash@{0}: WIP on mytest: 08a0663 Update to 2.0.4 version
更加详细的用法,可以帮助查看:
git stash --help