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

最初にマスターからブランチ A を作成しました。次に、ブランチ (A1) からブランチを作成しました。

時間の経過とともに、ブランチ A にいくつかの変更を加えました。また、ブランチ A1 にもいくつかの変更を加えました。

ここで、ブランチ A への変更 (変更 1-4) なしで、ブランチ A1 のマスターへの変更 (変更 1001) のみを取得したいと考えています。

これは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)

2 番目のケース (branchA1から来るmaster) では、単純に でマージできbranchA1ますmaster

しかし、最初のケース (branchA1から来るbranchA) では、次のことができます。

git cherry-pick change 1001

しかし、それはいくつかの重複したコミットを残し、機能的な依存関係の影響を受けます。
可能であれば、チェリーピッキングを避けるようにしています。

または:

git rebase --onto master y1 branchA1

これにより、すべてのコミットが(以降) からブランチに移動されます。重複コミットなしbranchA1y1branchAmaster

于 2013-07-15T08:29:54.123 に答える