协慌网

登录 贡献 社区

如何在 git 中按名称命名和检索存储?

我一直认为你可以通过git stash save stashnamegit stash save stashname一个名字,你可以稍后通过git stash apply stashname 。但似乎在这种情况下,所有发生的事情都是将stashname用作存储描述。

有没有办法真正命名藏匿?如果没有,你会建议什么实现相同的功能?基本上我有一个小的藏匿,我会定期申请,但不想总是在git stash list寻找它的实际藏匿号码。

答案

这是你如何做到的:

git stash save "my_stash"

其中"my_stash""my_stash"名称。

一些更有用的知识:所有的存储都存储在一个堆栈中。类型:

git stash list

这将列出你的所有藏匿处。

要应用存储并将其从存储堆栈中删除,请键入:

git stash pop stash@{n}

要应用存储并将其保存在存储堆栈中,请键入:

git stash apply stash@{n}

其中n是隐藏变化的索引。

从 2.15.x / 2.16 开始不推荐使用 git stash save ,而是可以使用git stash push -m "message"

你可以像这样使用它:

git stash push -m "message"

其中 “消息” 是您存储的注释。

要检索存储,您可以使用: git stash list 。这将输出这样的列表,例如:

stash@{0}: On develop: perf-spike
stash@{1}: On develop: node v10

然后你只需使用apply给它stash@{index}

git stash apply stash@{1}

引用 git stash 手册页

如果你觉得它很重要,你可以把藏匿处变成一个分支:

git stash branch <branchname> [<stash>]

从手册页:

这将创建并检出一个名为 的新分支,从最初创建 的提交开始,将 中记录的更改应用于新的工作树和索引,然后删除 成功完成。如果没有给出 ,则应用最新的。

如果运行 git stash save 的分支已经发生了足够的变化,git stash apply 因冲突而失败,那么这很有用。由于存储是在运行 git stash 时的 HEAD 提交之上应用的,因此它会恢复原始存储状态而不会发生冲突。

你可以稍后将这个新分支重新定位到其他地方,这个地方是你藏匿时所处的位置。