如果你一直在使用 Git ,你可能用过 Git stash 。 这是 Git 的实用功能之一。
下面是我上周学到的 Git stash 的一些有用的技巧。
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
这个命令跟 Git stash 很像。 但是这个命令带有各种选项。 我将在这篇文章中讨论一些重要的选项。
Git stash with message
git stash save “Your stash message”.
上面的命令存储了一条消息。 在之后会对我们有所帮助。
存储未跟踪的文件
你也可以存储未跟踪的文件。
git stash save -u or git stash save --include-untracked
在讨论这个命令之前,让我告诉你一些关于 stash 是如何运作的事。
当你敲入 Git stash 或 Git stash save 时,Git 实际上会创建一个 Git commit 对象,然后将它保存在你的代码仓库中。
这意味着你可以随时查看创建的 stashes 列表。
git stash list
看下面的例子:
你可以看到生成的 stashes 列表。最近生成的排在最前面。
你可以看到,第一个 stash 给出了一个自定义的消息(使用 Git stash save “message”)。
这个命令将堆栈中最顶层的 stash 拿出并交回给代码仓库。在我们的示例中,就是 stash@{0} 。
如果你想获取一些其他的 stash ,你可以指定 stash ID 。
示例:
git stash apply stash@{1}
这个命令与 stash apply 命令非常相似,但是在 stash 取回之后从堆栈中删除了 stash 。
示例如下:
正如你所看到的,第一个 stash 被删除了,并且 stash@{0} 更新为了上一个版本的 stash 。
同样的,如果你想取出一个特定的 stash ,你可以指定存储器 ID 。
git stash pop stash@{1}
这个命令显示了 stash 之间的差异的概要。上述命令只涉及最新的 stash 。
示例如下: 如果想看完整的差异信息,可以使用
git stash show -p
与其他命令类似,也可以指定 stash ID 来获取差异的概要。
git stash show stash@{1}
这个命令创建一个最新 stash 的新的分支,然后删除该 stash(类似 stash pop )。
如果你需要一个特定的 stash 你可以指定 stash ID 。
git stash branch <name> stash@{1}
当将 stash 应用到最新版本的分支后遇到冲突时,这将会非常有用。
该命令删除仓库中的所有的 stashes 。也许不能恢复。
该命令从堆栈中删除最新的stash。 但谨慎使用,可能难以恢复。
同样可以指定 stash ID 。
git stash drop stash@{1}
希望你能得到一些关于 Git stash 的有用的技巧。 如果你喜欢这篇文章,请试着给一些鼓掌和分享:)
评论删除后,数据将无法恢复
评论(1)