从另一个分支的相应提交修改分支的提交
Modifying a commit of a branch from the corresponding commit from another branch
我有一个 git 看起来像这样的回购协议:
c1->c2->c3->c4 (mainline)
\
\ c6->c7->c8 (other branch)
我在主线上从 c4
创建了一个名为 my branch
的新分支,并添加了一个提交 c5
到 my branch
。现在我的 git 仓库看起来像这样。
c5 (my branch)
/
c1->c2->c3->c4/ (mainline)
\
\ c6->c7->c8 (other branch)
mainline
的 c4
正在代码审查中,在收到建议后,我不得不修改 mainline
的 c4
。但是,更改不会出现在 my branch
的 c4
中。有什么方法可以让所有 c4
从 mainline
更改为 my branch
的 c4
?
编辑:最终我将不得不将 my branch
合并到 mainline
并推送 c5
以供审核。
我认为你是指 my branch
中的 c5
。
您应该能够在 my branch
上 运行 git rebase -i mainbranch
,然后提交结果,以获得 mainline
的所有后续提交。这将使 c5
领先于您对 mainbranch
.
所做的任何更改
其次,您可以从 my branch
运行 git merge mainline
,但这会产生一个新的合并提交,这并不总是可取的。
第三种选择是从 mainbranch
到 my branch
.
中挑选任何带有散列的提交
当您修改 mainline
分支上的提交 c4
时,您创建了一个新的提交哈希。
修复它的一种方法是从 c4
重新启动并应用 my branch
:
的更改
git checkout mainline
git checkout <hash-of-c4> # go to updated c4
git checkout -b my-branch-new # create branch
git cherry-pick <hash-of-c5> # apply c5
my-branch-new
应该同时具有 c4
和 c5
的变化
我有一个 git 看起来像这样的回购协议:
c1->c2->c3->c4 (mainline)
\
\ c6->c7->c8 (other branch)
我在主线上从 c4
创建了一个名为 my branch
的新分支,并添加了一个提交 c5
到 my branch
。现在我的 git 仓库看起来像这样。
c5 (my branch)
/
c1->c2->c3->c4/ (mainline)
\
\ c6->c7->c8 (other branch)
mainline
的 c4
正在代码审查中,在收到建议后,我不得不修改 mainline
的 c4
。但是,更改不会出现在 my branch
的 c4
中。有什么方法可以让所有 c4
从 mainline
更改为 my branch
的 c4
?
编辑:最终我将不得不将 my branch
合并到 mainline
并推送 c5
以供审核。
我认为你是指 my branch
中的 c5
。
您应该能够在 my branch
上 运行 git rebase -i mainbranch
,然后提交结果,以获得 mainline
的所有后续提交。这将使 c5
领先于您对 mainbranch
.
其次,您可以从 my branch
运行 git merge mainline
,但这会产生一个新的合并提交,这并不总是可取的。
第三种选择是从 mainbranch
到 my branch
.
当您修改 mainline
分支上的提交 c4
时,您创建了一个新的提交哈希。
修复它的一种方法是从 c4
重新启动并应用 my branch
:
git checkout mainline
git checkout <hash-of-c4> # go to updated c4
git checkout -b my-branch-new # create branch
git cherry-pick <hash-of-c5> # apply c5
my-branch-new
应该同时具有 c4
和 c5