如何在Git中添加对stash的进一步更改

icnyk63a  于 2023-02-28  发布在  Git
关注(0)|答案(3)|浏览(134)

假设我已经隐藏了一些更改,并且我想在同一个隐藏中添加更多的更改(例如stash@{0}),有没有简单的方法可以做到这一点?把两个隐藏合并成一个如何?

7dl7o3gd

7dl7o3gd1#

我不认为我们必须遵循所有这些步骤,
git stash pop [这将应用您上次对stash{@0}所做的更改],然后再次说,git stash [这将创建新的stash并将所有更改应用到stash@{0}]

y0u0uwnf

y0u0uwnf2#

我没有看到任何“git stash“选项允许修改现有的git stash。
实现这一目标的一个可能方法是:

  • 隐藏您的其他更改(stash@{1}
  • 隐藏所有其他内容(stash@{2}
  • 从当前修改的提交(HEAD)创建tmp分支
  • git stash pop两次
  • git stash,创建其中具有两个内容的新stash@{1}
  • 删除临时分支并 checkout 初始分支
  • git stash pop一次(还原所有挂起的更改)
  • 继续你的精选收藏

5年后,Powerslave在评论中提出:
分支魔法完全没有必要。
你可以简单地
1.用你所有的东西重新藏起来。

  1. git stash apply两个变更集(您可以改为git stash pop,但在这种情况下,如果您不小心搞砸了,就会有麻烦)。
    1.用这些合并的更改创建一个新的藏匿处。
  2. git stash drop其他两个更改集(如果使用apply而不是pop
ercv8c1e

ercv8c1e3#

一个老问题,但我觉得它仍然缺少正确的答案:Do not use git stash,使用temporary commits和/或临时分支
假设我已经隐藏了一些更改,并且我想将更多的更改添加到同一个隐藏中(例如stash@{0})。有没有简单的方法可以做到这一点?
是的,当你使用普通的、简单的提交时,这只是一个普通的交互式变基操作。
把两个地方合并成一个怎么样?
当你使用普通的、简单的提交时,这只是一个普通的交互式变基,只需要一个fixup动作。

相关问题