1

目标:我想将来自“bravo”的提交 G 重新设置为来自“alpha”的提交 F。由此:

             G    bravo
            /
        D--E--F   alpha
       /
A--B--C           mainline

对此:

                G    bravo
               /
        D--E--F     alpha
       /
A--B--C             mainline

“alpha”已经成功地重新基于最新的主线工作。我在 C 上挑选“alpha”。当我挑选“bravo”时,它会出现所有合并冲突。一旦我修复了这些,如果我这样做了

commit --amend

提交消息只包含 alpha 的所有信息,而我希望得到 bravo 的信息。所以我在硬重置为 C 后再次尝试,为 alpha 拉(与樱桃选择相反)然后拉布拉沃。修复了冲突并运行:

commit

提交消息只是将其列为合并并具有合并信息。尽管提交成功,但我无法将其推送到 gerrit,因为它说我无权推送合并。当我读到 rebase 时,总是只针对主线,但我想 rebase 私有分支。我哪里错了?

4

1 回答 1

0

在研究了变基等之后,我发现在这种情况下,您希望将 bravo 挑选到另一个精选的更改(alpha)上,然后当您提交时仅使用

commit

不是

commit --amend

这将保留 bravo 的提交消息,并愉快地将其“重新定位”到 alpha 的最新补丁集。

于 2012-07-11T09:56:48.343 回答