2
                   change 1, change 2, change 3, change 4
                  /
master >> Branch A
                  \ Branch A1
                             \
                              change 1001

我一开始就从master做了一个分支A。然后我从分支(A1)中创建了一个分支。

随着时间的推移,我对分支 A 进行了一些更改。我还对分支 A1 进行了一些更改。

现在我只想将分支 A1 更改为 master(更改 1001),而不更改分支 A(更改 1-4)。

这可以用 git 轻松完成吗?如果可能的话,实现这一目标的适当步骤是什么?

我在 Eclipse 中使用 eGit 插件。

4

1 回答 1

0

你有

x--x--x (master)
       \
        y--y1--change 1, change 2, change 3, change 4 (branchA)
            \
             change 1001 (branchA1)

或者:

         change 1001 (branchA1)
       /
x--x--x (master)
       \
        y--y--change 1, change 2, change 3, change 4 (branchA)

在第二种情况下(branchA1来自master),您可以简单地合并branchA1master.

但在第一种情况下(branchA1来自branchA),您可以:

git cherry-pick change 1001

但这会留下一些重复的提交并且受制于功能依赖
如果可能的话,我尽量避免采摘樱桃。

或者:

git rebase --onto master y1 branchA1

这会将所有提交从branchA1(之后y1)移动branchAmaster分支上。没有重复的提交

于 2013-07-15T08:29:54.123 回答