枝の違いをマージGitは - 私は BがCにマージされ、定期的にされた3つの分岐A、BおよびCを持っている
o---o---o A
/
--------o---o---o---o---o---o B
\ \ \ \
o---o---o---o---o---o C
は、今私は、私はCで行った変更をマージしたいのですが、マージなしBの上からAの上。 gitでこれを行う最も簡単な方法は何ですか?
枝の違いをマージGitは - 私は BがCにマージされ、定期的にされた3つの分岐A、BおよびCを持っている
o---o---o A
/
--------o---o---o---o---o---o B
\ \ \ \
o---o---o---o---o---o C
は、今私は、私はCで行った変更をマージしたいのですが、マージなしBの上からAの上。 gitでこれを行う最も簡単な方法は何ですか?
git rebaseを使用してください。
まず、Bの上にあなたのCをリベース:すべてのCがBからAへの移植ブランチrebasedC今、私たちが望むB. のににコミット
git checkout C
git checkout -b rebasedC#Let's do a new branch for it also, just in case
git rebase B
それが配置されます:
git rebase --onto A B rebasedC
これで、rebasedCブランチのAの上にCコミットができました。 Aを早送りすることができます:
git checkout A
git merge rebasedC
git branch -d rebasedC# I don't think you would need it.
これだけです。
cherry-picking Cの非マージパッチを試すことができます。マージの競合を処理する準備をしてください。 :)
私が正しく理解していれば、あなたがもしケースthat's
A.
にCからいくつかのコミットをしたい、なぜ「チェリーピック」それらをドント?これは、紛争につながることができます、しかし、私は、そのあなたの最高のチャンス:)http://schacon.github.com/git/git-cherry-pick.html
http://schacon.github.com/git/user-manual.html#reordering-patch-series
ブランチあなたがそれをマージしたいためにと思いますか? –
彼はAの上にそれを望んでいます – CharlesB
Q、W(ブランチC)、E、R(ブランチB) - マージ - T、Y(ブランチC)ブランチCからQ、W、T、Yを選択すると、E、R(おそらくT、Yベースがオン)のコードが欠落しているために事態が壊れますか? –