简评:如果你用过一段时间的 Git,你可能会用过 Git stash 命令。它是 Git 最有用的功能之一。

  • Git stash save
  • Git stash list
  • Git stash apply
  • Git stash pop
  • Git stash show
  • Git stash branch <name>
  • Git stash clear
  • Git stash drop

1. Git stash save

这个命令类似于 Git stash。但这个命令可以有一些选项。我会在这里讨论一些重要的选项。

带消息的 Git stash

git stash save “Your stash message”

以上命令会将消息存放起来。我们将会看到这很有用。

存储没有追踪的文件

你也可以存储没有追踪的文件。

git stash save -u
or
git stash save --include-untracked

2. Git stash list

在讨论这个命令之前,让我来告诉你 git stash 的工作原理。
当你输入 Git stash 或 Git stash save,Git 会创建一个带名字的 Git 提交对象,然后保存到你的仓库。
这意味着你可以随时查看你的存储列表。

git stash list

效果是这样的:

你可以查看 stash 创建的列表。最近的 stash 会放在最上面。
你可以看到最上面的那条有一条自定义消息(通过 Git stash sava “message” 命令生成的)。

3. Git stash apply

这条命令会将工作栈中最上面的 stash 应用到仓库中。本例中是 stash@{0}。

你也可以通过 stash id 将某个 stash 应用到仓库中:

git stash apply stash@{1}

4. Git stash pop

这个命令和 stash apply 非常相似,但它会在应用到仓库后删除这个 stash。

例如:

你可以看到最上面的 stash 被删除了,stash@{0} 变成了之前的 stash。

同样地,你也可以通过特定的 stash id 来 pop 某个 stash。

git stash pop stash@{1}

5. Git stash show

这个命令会显示 stash 差异总结。这条命令只考虑和最近的 stash 比较。

如果你想看完整的差异,可以使用:

git stash show -p

和其他的命令相似,你可以通过 stash id 来查看某个 stash 的差异总结:

git stash show stash@{1}

6. Git stash branch <name>

这条命令会根据最近的 stash 创建一个新的分支,然后删除最近的 stash(和 stash pop 一样)。

如果你需要某个 stash,你可以指明 stash id。

git stash branch <name> stash@{1}

当你将 stash 运用到最新版本的分支后发生了冲突时,这条命令会很有用。

7. Git stash clear

这条命令会删除仓库中创建的所有的 stash。有可能不能恢复。

8. Git stash drop

这条命令会删除工作栈中最近的 stash。但是要谨慎地使用,有可能很难恢复。
你可以声明 stash id。

git stash drop stash@{1}

链接:https://www.jianshu.com/p/471c9537f45a

01-06 20:32