【问题标题】:Is it possible to create a branch from a stash using the stash name?是否可以使用存储名称从存储创建分支?
【发布时间】: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


【解决方案1】:

git stash 分支分支名称 stash^{/name} 或者 git stash 分支 stash@{1}

这个命令应该可以工作。分支名称重复的错误“已经存在”。尝试使用新的分支名称,它会工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2023-03-21
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多