【发布时间】:2018-11-19 17:00:18
【问题描述】:
我知道
git stash branch branchname
使用最近的存储创建一个新分支
和
git stash branch branchname stash@{index}
使用给定索引处的存储创建一个新分支。但是,有可能做这样的事情吗?
git stash branch branchname stashname
注意:这不起作用
git stash branch branchname stash^{/name}
【问题讨论】:
-
“stashname”是什么意思?存储名称是
stash@{<number>}. -
@torek 可以使用名称保存存储,或者更准确地说,可以使用消息“git stash save “guacamole sauce WIP”,然后使用该消息“git stash apply stash^{/guacamo} " 在这里讨论stackoverflow.com/questions/11269256/…。
-
啊。这在技术上是一个消息,而不是一个名称。它只是进入工作树的提交消息。不幸的是,您链接的答案也是完全错误的。 (对于同一个问题,请参阅this other answer,这似乎是正确的。)
-
这就是为什么我包含了“或者更准确地说是一条消息”评论 :) 在通常的用法中,我听说过带有被称为“命名存储”的消息的存储,并理解在幕后,它们是带有相关消息的存储区。关于那个错误答案的好点。那么,如果我们可以通过使用索引位置来应用存储,我们也可以通过消息来实现吗?
-
您当然可以进行搜索(使用
git log -g --grep)并使用它来获取存储索引或哈希ID。您需要使用stash@{number}拼写的索引,用于还希望drop 存储的操作:仅哈希ID 在这里是不够的。由于git stash branch丢弃了存储,它需要索引。最近的 Git 版本接受原始数字,例如,2表示stash@{2},但为了与较旧的 Git 兼容,您可能希望在一段时间内坚持使用stash@{...}语法。
标签: git git-branch git-stash