Git 之 git stash 详解

Git 之 git stash 详解

参考

  • git-stash用法小结

前言

发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交。这时就可以考虑 git stash

保存起来所有未提交的修改(包括暂存和非暂存)

会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

  • stash 是本地的(非暂存),不会通过 git push 命令上传到 Git 服务器上。
  • 推荐:给每个 stash 加一个 message,用于记录版本。
  • 使用 git stash save 取代 git stash 命令。

示例如下:

git stash save "test-cmd-stash"

重新应用缓存的 stash

git stash pop

可以通过 git stash pop 命令恢复之前缓存的工作目录:
这个指令将缓存堆栈中的第一个 stash 删除,并将对应修改应用到当前的工作目录下。

git stash apply

你也可以使用 git stash apply 命令,将缓存堆栈中的 stash 多次应用到工作目录中,但并不删除 stash 拷贝。
在使用 git stash apply 命令时可以通过名字指定使用哪个 stash,默认使用最近的 stash(即 stash@{0})。

查看现有 stash

git stash list

典型的输出如下:

stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log

移除 stash

git stash drop

可以使用 git stash drop 命令,后面可以跟着 stash 名字。

下面是一个示例:

git stash drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)

或者使用 git stash clear 命令,删除所有缓存的 stash

git stash clear

你可能感兴趣的:(Git,git)