如何在git中只从分支的分支中获取更改?

时间:2013-07-15 06:35:11

标签: eclipse git branch egit

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

我从一开始就从主人那里做了一个分支A.然后我在分支(A1)之外做了一个分支。

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

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

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

我在Eclipse中使用eGit插件。

1 个答案:

答案 0 :(得分: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),您只需在branchA1上合并master

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

git cherry-pick change 1001

但这会留下一些duplicate commits并受functional dependencies的约束 如果可能的话,我尽量避免采摘樱桃。

或者:

git rebase --onto master y1 branchA1

这将移动branchA1y1 branchA之后)到master分支的所有提交。没有重复提交