likes
comments
collection
share

Git stash: 一些硬核使用技巧

作者站长头像
站长
· 阅读数 20

Git stash: 一些硬核使用技巧

Git stash :)

如果你已经使用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
  7. Git stash clear
  8. Git stash drop

Git stash save

该命令与Git stash类似. 但该命令有多种选项. 我将在这篇文章中讨论一些重要的选项.

带有message的Git stash

git stash save “Your stash message”.

上面的命令是带有message的stash. 我们稍后会看到这有什么用.

stash未被追踪的文件

你也可以stash未被追踪的文件.

git stash save -uorgit stash save --include-untracked

Git stash list

在讨论这条命令之前, 让我先介绍一下stash的工作原理.

当你使用Git stash或Git stash save时, Git实际上会用一些名字创建一个Git提交对象, 并将其保存在你的repo中.

这意味着你可以随时查看你的stash列表:

git stash list

请看下面的例子:

Git stash: 一些硬核使用技巧

git stash list示例

您可以看到已创建的stash列表. 最新的stash在最上面.

你还能看到最上面的stash被赋予了一条自定义信息(通过Git stash save "message").

Git stash apply

该命令选取堆栈中最顶层的stash, 并将其应用到仓库中. 在我们的例子中, 它是 stash@{0}.

如果你想应用其他存储库, 可以指定stash的id.

下面是一个例子:

git stash apply stash@{1}

Git stash pop

这条命令与stash apply非常相似, 但它会在应用后从堆栈中删除栈顶的stash.

下面是一个例子:

Git stash: 一些硬核使用技巧

Git stash pop示例

正如你所看到的, 顶部的stash被删除, **stash@{0}**被更新为旧的stash.

同样, 如果想弹出某个特定的stash, 也可以指定stash的id:

git stash pop stash@{1}

Git stash show

此命令显示stash差异的摘要. 上面的命令只考虑最新的stash.

下面是一个例子:

Git stash: 一些硬核使用技巧

Git stash show示例

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

git stash show -p

与其他命令类似, 你也可以指定stash的id来获取差异摘要.

git stash show stash@{1}

Git stash branch

这条命令会用最新的stash创建一个新分支, 然后删除最新的stash(就像stash pop一样).

如果需要特定的stash, 可以指定stash的id:

git stash branch <name> stash@{1}

当你把stash应用到最新版本的分支后, 遇到冲突时, 这个方法会很有用.

Git stash clear

这条命令会删除仓库中的所有stash. 可能无法还原.

Git stash drop

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

你也可以指定stash的id:

git stash drop stash@{1}

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

如果你喜欢这篇文章, 请点赞, 收藏并分享它 :) :)