ブランチをマスターと同期/更新するにはどうすればいいですか? 質問する

ブランチをマスターと同期/更新するにはどうすればいいですか? 質問する

現時点では、git が頭を悩ませており、次のような最善の解決策を思いつくことができません。

ブランチは 2 つあり、1 つはmaster、もう 1 つはmobiledevicesupportです。 mobiledevicesupport は、 mobiledevicesupport が安定するたびに master ブランチとマージ/同期される継続ブランチとして維持したいと考えています。これにより、 mobiledevicesupport からの変更が master にマージされるだけでなく、 master からのすべての変更が mobiledevicesupport に取り込まれるため、ブランチで作業を継続して、機能の改善や修正を行うことができます。 これは、中央リポジトリと複数の開発者で機能する必要があります。

他の人が使用している同様のワークフローの例を教えてください。または、このアイデアが愚かで、他のオプションを検討する必要があるかどうかを教えてください。現時点では、ワークフローは適切であるように見えますが、git をこのように動作させる方法がわかりません。

ありがとうございます。すべての助力に感謝しています。

更新 1: master を mobiledevicesupport にマージし、mobiledevice support を master にマージする場合、両方のブランチ間でコミットが複製されますか。それとも、git は、ブランチ A からブランチ B に最新の変更をプルし、ブランチ B にマージ コミット C を追加し、ブランチ B からブランチ A に最新の変更をプルし、ブランチ A にマージ コミット D を追加したと判断できるほど賢いのでしょうか。

画像を投稿するつもりでしたが、十分な評判がないので、次の図で十分だと思います。 2 つのブランチが継続的に実行され、頻繁に双方向にマージが行われています。 確信が持てない重要な点は、git がコミットをどのように実行するか、マージ時にいずれかのブランチが他のブランチからのコミットで埋められるか、クリーンなままになるかです。 以前に rebase を使用したことがありますが、ブランチを終了してすべてのコミットをマスターに配置するようです。または、私が間違っていました。 これまでのサポートに感謝します。

master
A--B--C-----H--I--J--M--N
       \   /    \
mobile  \ /      \
D--E--F--G--------K--L

ベストアンサー1

はい、次の操作を実行してください:

git checkout master
git pull
git checkout mobiledevicesupport
git merge master

mobiledevicesupport をマスターと同期させます。

次に、mobiledevicesupport をマスターに配置する準備ができたら、まず上記のようにマスターにマージし、次の操作を実行します。

git checkout master
git merge mobiledevicesupport
git push origin master

以上です。

ここでの前提は、mobilexxx がトピック ブランチであり、その作業がまだメイン ブランチに取り込まれる準備ができていないことです。したがって、mobiledevicesupport が適切な状態になった場合にのみ、master にマージします。

おすすめ記事