gpt4 book ai didi

git - 使用 commit --amend 时使子分支与父分支保持同步

转载 作者:太空狗 更新时间:2023-10-29 14:36:41 28 4
gpt4 key购买 nike

我当前的 Git 存储库有三个分支:mainlinefeature_afeature_b。历史如下:

  1. mainline 从远程仓库克隆
  2. feature_a 分支已从 mainline
  3. checkout
  4. feature_a 进行了更改并提交为 commit_a
  5. feature_b 分支已从 feature_a
  6. checkout
  7. feature_b 进行了更改并提交为 commit_b
  8. 更改了 feature_a 并修改为 commit_a

如何使用修改为 commit_a 的更改更新 feature_b 分支?

最佳答案

你的历史可能看起来像这样:

           A' [feature_a]
/
*--*--*--* [mainline]
\
A [original feature_a]
\
B [feature_b]

提交 A 是您在 feature_a 上所做的原始提交。当您使用 git commit --amend 修改提交时,它会创建一个 提交,A'

您需要 rebase feature_b 以将其附加到新的提交 A'。做:

git rebase --onto feature_a A feature_b

(您可能也可以简单地执行 git rebase feature_a feature_b,但我不确定这将如何工作,因为您修改了提交 A.)

现在您的历史记录将如下所示:

             B' [feature_b]
/
A' [feature_a]
/
*--*--*--* [mainline]

从技术上讲,提交 AB 仍在 repo 协议(protocol)中,但由于它们未被使用,Git 稍后将对它们进行垃圾回收。

关于git - 使用 commit --amend 时使子分支与父分支保持同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988713/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com