如何向 Git 中的存储添加进一步的更改

问题描述 投票:0回答:4

假设我已经隐藏了一些更改,并且我想将更多更改添加到同一个隐藏中(例如

stash@{0}
)。是否有捷径可寻?将两个储藏室合并为一个储藏室怎么样?

git git-stash
4个回答
24
投票

我认为我们不必遵循所有这些步骤,

git stash pop [这将应用您上次隐藏的更改 stash{@0}] 然后再说一遍,git stash [这将创建新的存储,并将所有更改存储到 stash@{0}]

注意:如果您的进一步更改不需要与隐藏的更改合并,那么事情就这么简单。如果他们这样做,您可以在隐藏弹出之前

git add .
遵循其他答案之一中更仔细的过程。


19
投票
我没有看到任何“

git stash

”选项允许修改现有的 git stash。

实现这一目标的可能方法是:

    隐藏您的额外更改(
  • stash@{1}
    )
  • 把其他东西都藏起来(
  • stash@{2}
    )
  • 从您当前正在修改的提交 (
  • tmp
    ) 创建一个 
    HEAD
     分支
  • git stash pop
    两次
  • git stash
    ,创建一个新的 
    stash@{1}
    ,其中包含这两个内容,
  • 删除您的临时分支并签出您所在的初始分支
  • git stash pop
    一次(恢复所有待处理的更改)
  • 继续你的选择性藏匿

五年后,

Powerslave在评论中提出

分支魔法完全没有必要。
你可以简单地


用你拥有的任何东西创建一个新的储藏室。
  1. git stash apply
  2. 两个变更集(您可以改为
    git stash pop
    ,但在这种情况下,如果您不小心搞砸了,就会遇到麻烦)。
      
    使用这些合并的更改创建一个新的存储。
  3. git stash drop
  4. 另外两个变更集(如果您使用
    apply
    而不是
    pop

3
投票

创建初始存储:
  1. git stash save -u "initial stash"


进行您想要添加到存储库中的初始存储的进一步更改。

暂存所有更改:
  1. git add .


列出存储库中所有可用的存储:
  1. git stash list
您将看到如下输出:
stash@{0}: On main: initial stash



将您的初始存储应用到其他更改之上:
  1. git stash apply stash@{0}


(可选步骤)使用 IDE 解决初始存储与当前更改之间可能出现的任何冲突。

创建一个新的存储,结合您的初始存储更改和最近的更改:
  1. git stash save -u "initial stash combined with new changes"


应用您的组合储藏室:
  1. git stash apply stash@{0}


删除您的初始存储:
  1. git stash drop 1
您将看到如下输出:
Dropped refs/stash@{1}


通过执行这些步骤,您可以有效地将初始存储与新更改结合起来并继续您的工作。


1
投票

不要使用git stash

,使用
临时提交和/或临时分支

假设我已经存储了一些更改,并且我想将更多更改添加到同一存储中(例如 stash@{0})。有没有简单的方法可以做到这一点?

是的,当您使用正常、不复杂的提交时,这只是一个带有
edit

操作的正常交互式变基。


将两个储藏室合并为一个储藏室怎么样?

当您使用正常、不复杂的提交时,这只是一个带有
fixup

操作的正常交互式变基。

    

© www.soinside.com 2019 - 2024. All rights reserved.