加载中

If you have been using Git for a while you might have used Git stash. It’s one of the useful features in Git.

Here are some of the useful tricks I learned about Git stash last week.

  1. Git stash save

  2. Git stash list

  3. Git stash apply

  4. Git stash pop

  5. Git stash show

  6. Git stash branch <name>

  7. Git stash clear

  8. Git stash drop

如果你一直在使用 Git ,你可能用过 Git stash 。 这是 Git 的实用功能之一。

下面是我上周学到的 Git stash 的一些有用的技巧。

  1. Git stash save

  2. Git stash list

  3. Git stash apply

  4. Git stash pop

  5. Git stash show

  6. Git stash branch <name>

  7. Git stash clear

  8. Git stash drop

Git stash save

This command is like Git stash. But this command comes with various options. I will discuss some important options in this post.

Git stash with message

git stash save “Your stash message”.

The above command stashes with a message. We will see how this is helpful in a bit.

Stashing untracked files

You can also stash untracked files.

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

Git stash save

这个命令跟 Git stash 很像。 但是这个命令带有各种选项。 我将在这篇文章中讨论一些重要的选项。

Git stash with message

git stash save “Your stash message”.

上面的命令存储了一条消息。 在之后会对我们有所帮助。

存储未跟踪的文件

你也可以存储未跟踪的文件。

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

Git stash list

Before discussing this command, let me tell you something about how stash works.

When you Git stash or Git stash save, Git will actually create a Git commit object with some name and then save it in your repo.

So it means that you can view the list of stashes you made at any time.

git stash list

See the example below:


You can see the list of stashes made. And the most recent stash made is in the top.

And you can see that the top stash is given a custom message (using Git stash save “message” ).

Git stash list

在讨论这个命令之前,让我告诉你一些关于 stash 是如何运作的事。

当你敲入 Git stash 或 Git stash save 时,Git 实际上会创建一个 Git commit 对象,然后将它保存在你的代码仓库中。

这意味着你可以随时查看创建的 stashes 列表。

git stash list

看下面的例子:

你可以看到生成的 stashes 列表。最近生成的排在最前面。

你可以看到,第一个 stash 给出了一个自定义的消息(使用 Git stash save “message”)。

Git stash apply

This command takes the top most stash in the stack and applies it to the repo. In our case it is stash@{0}

If you want to apply some other stash you can specify the stash id.

Here’s the example:

git stash apply stash@{1}

Git stash apply

这个命令将堆栈中最顶层的 stash 拿出并交回给代码仓库。在我们的示例中,就是 stash@{0} 。

如果你想获取一些其他的 stash ,你可以指定 stash ID 。

示例:

git stash apply stash@{1}

Git stash pop

This command is very similar to stash apply but it deletes the stash from the stack after it is applied.

Here’s the example:


As you can see the top stash is deleted and stash@{0} is updated with older stash.

Likewise, if you want a particular stash to pop you can specify the stash id.

git stash pop stash@{1}

Git stash pop

这个命令与 stash apply 命令非常相似,但是在 stash 取回之后从堆栈中删除了 stash 。

示例如下:



正如你所看到的,第一个 stash 被删除了,并且 stash@{0} 更新为了上一个版本的 stash 。

同样的,如果你想取出一个特定的 stash ,你可以指定存储器 ID 。

git stash pop stash@{1}

Git stash show

This command shows the summary of the stash diffs. The above command considers only the latest stash.

Here’s the example:


If you want to see the full diff, you can use

git stash show -p

Likewise with other commands, you can also specify the stash id to get the diff summary.

git stash show stash@{1}

Git stash show

这个命令显示了 stash 之间的差异的概要。上述命令只涉及最新的 stash 。

示例如下:


如果想看完整的差异信息,可以使用

git stash show -p

与其他命令类似,也可以指定 stash ID 来获取差异的概要。

git stash show stash@{1}

Git stash branch <name>

This command creates a new branch with the latest stash, and then deletes the latest stash ( like stash pop).

If you need a particular stash you can specify the stash id.

git stash branch <name> stash@{1}

This will be useful when you run into conflicts after you’ve applied the stash to the latest version of your branch.

Git stash clear

This command deletes all the stashes made in the repo. It maybe impossible to revert.

Git stash branch <name>

这个命令创建一个最新 stash 的新的分支,然后删除该 stash(类似 stash pop )。

如果你需要一个特定的 stash 你可以指定 stash ID 。

git stash branch <name> stash@{1}

当将 stash 应用到最新版本的分支后遇到冲突时,这将会非常有用。

Git stash clear

该命令删除仓库中的所有的 stashes 。也许不能恢复。

Git stash drop

This command deletes the latest stash from the stack. But use it with caution, it maybe be difficult to revert.

You can also specify the stash id.

git stash drop stash@{1}

Hope you got some useful tricks about Git stash.

If you enjoyed the article try to give some claps and share it :) :)

Git stash drop

该命令从堆栈中删除最新的stash。 但谨慎使用,可能难以恢复。

同样可以指定 stash ID 。

git stash drop stash@{1}

希望你能得到一些关于 Git stash 的有用的技巧。

如果你喜欢这篇文章,请试着给一些鼓掌和分享:)

返回顶部
顶部