8

私はしばらくの間ローカルトピックブランチに取り組んでおり、時々わずかな変更を加えるだけです。

その間に、マスターブランチは大幅に進化しました。マスターブランチの新しい変更をローカルトピックブランチに組み込むことにしました(ブランチ元の元のマスターコミットに関連する変更はほとんどありません)。

git fetch
git checkout my_branch
git merge origin/master

しかし、gitは私に次のように警告します:

特に更新されたアップストリームをトピックブランチにマージする場合は、このマージが必要な理由を説明するコミットメッセージを入力してください。

これは私を興味深くさせました。なぜ警告?代わりにリベースを行う必要がありますか?またはチェリーピック?それとは別に、私の場合、リベースまたはチェリーピックをどのように使用しますか?

4

1 に答える 1

6

あなたが正しいので、gitのコアメンテナとこの正確なメッセージの言い回しについていくつかの議論がありました、それはあまり明確ではありません。

puppet labsのプログラミングガイドラインは、これが最適ではない理由についての優れた説明を提供し、より好ましい回避策を提供します。

作業はトピックブランチで実行し、no-ffを使用してマージする必要があります。この理由は、gitの履歴がより明確になるためです。トピックブランチグループ関連のコミットはうまく機能し、no-ffを使用してマージすると、そのグループ化が履歴に保持されます。

回避できる可能性がある場合は、アップストリームブランチをトピックブランチにマージしないでください。これは、開発とアップストリームブランチでの開発との間の競合を解決する方法のひとつですが、履歴が不鮮明になり、特にマージコミットでコードが変更されるため、操作が非常に困難になります。

外部の変更に適応する必要がある場合に、その混乱に陥らないように、ブランチをアップストリームに対してリベースすることをお勧めします。

パペットラボ

于 2012-10-11T15:21:57.930 に答える