私は、それぞれが複数のブランチに適用される一連のドキュメント パッチを生成する立場にあります。このプロジェクトでは、バージョン管理に Git を使用しています。
パッチは、そのままこれらのブランチの上にきれいに適用する必要があります。
最小限の労力で複数のブランチにパッチを適用するための最適なワークフローは何ですか?
を探しているようですgit-cherry-pick
。このコマンドは、名前付きコミットを取得して現在のブランチにコミットするために使用されます。基本的な構文は次のとおりですgit cherry-pick <commit>
。これがマニュアルページです。
ただし、可能であればチェリーピックを避ける必要があります。重複したコミットが作成され、それらをマージとして表示したいからです。「上にマージする」分岐ワークフローを採用するようにしてください。からman gitworkflows
:
修正を必要とする、サポートされている最も古いブランチに常に修正をコミットしてください。次に、(定期的に) 統合ブランチを上向きにマージします。
これにより、非常に制御された修正の流れが得られます。maint にも必要な修正を master などに適用したことに気付いた場合は、それを (git-cherry-pick(1) を使用して) 下向きにチェリーピックする必要があります。これは数回発生しますが、頻繁に行わない限り心配する必要はありません。
あなたの場合、ドキュメントの更新を「featureA-documentation」などのいくつかのクラスに分割し、それぞれが 1 つ以上のブランチにマージされるようにする必要があります。さまざまなブランチのチェックアウトと適切なトピックへのマージを自動化するスクリプトを簡単に作成できます。
興味がある場合は、編集履歴を見てください。これらは、プッシュまたはパッチの送信を使用して、ローカル リポジトリからリモート リポジトリに複数のブランチからパッチを取得する方法に対処しています。