3つのブランチbA、bB、bCにある3つのプルリクエストA、B、Cがあるとします。そしてあなたのメインブランチはマスターです。
まず、彼のすべてのブランチをマージせずにローカルリポジトリに移動します。
git fetch his-repo
したがって、リポジトリには4つのブランチがあります。master, bA, bB, bC
マスターからブランチを作成しますf-merge-his-repo
git checkout master
これにより、f-merge-his-repoがマスターから分岐するようになります。
git checkout -b f-merge-his-repo
これにより、ブランチf-merge-his-repoが作成され、それに切り替わります。
これで、現在f-merge-his-repoを使用しているので、次のコマンドを使用します。
git merge bA
git merge bB
git merge bC
競合がある場合は(手動またはmergetoolを使用して)修正する必要がありますが、競合はないので、これでbA bB and bC
すべてが解決されたと言えます。f-merge-his-repo
f-merge-his-repo
次に、マスターブランチにマージするだけです
最初にマスターブランチに切り替える必要があります。
git checkout master
そして、f-merge-his-repoをマージします
git merge f-merge-his-repo
または、早送りなしのマージを希望する場合
git merge --no-ff f-merge-his-repo
結局、これらのブランチを削除します。
git branch -d bA
git branch -d bB
git branch -d bC
git branch -d f-merge-his-repo
あなたは本当にpro-git
ここを見てみるべきです。これは、日常業務でgitに必要なすべてを示したシンプルな本であり、git bashに慣れると、これらのgit GUIのすべてがイライラすることに気付くでしょう(ログの表示を除いて、私はgitkを使用して表示します)ログを分析します)
最後のヒント:
覚えておくのに良い方法git merge
でgit rebase
、
Mergeは別のブランチを現在のブランチにマージしています(もちろん、両方のブランチに名前を付けることができますが、デフォルトの構文はブランチを現在のブランチにマージします)
したがって、常にメインブランチに切り替えて、他のブランチをマージする必要があります
git checkout master
git merge their-branch --no-ff
また
git merge their-branch
そして、リベースは現在のブランチを別のブランチ(通常はメインブランチ)にリベースしています
git checkout feature-branch
git rebase master