2

私が取り組んでいる Git リポジトリには 2 つのメイン ブランチalphaとがありbeta、どちらも類似しており、積極的に取り組んでいます。機能に取り組んでいるときは、両方のブランチにコミットする必要があります。ブランチの内容はほとんど同じですが、 と の両方alphaに共通の祖先はありませんbeta。これまでのところ、それはすべて私の会社によって義務付けられています。それについて私ができることはあまりありません。

これらのブランチの 1 つからフィーチャー ブランチに対して行ったアクションを、他のブランチのフィーチャー ブランチに複製する方法に興味があります。

仕様

現在、私のワークフローは機能ブランチfeatAoffに取り組み、定期的にコミットを別の機能ブランチoffalphaにチェリーピックします。これにより、以下のようなコミット ツリーが作成されます。featAfeatBbeta

A---B---C---E---F (featA)
         \
          D (alpha)

A'--B'--C'--E' (featB)
         \
          D' (beta)

この時点で、そのブランチへfeatBのコミットをチェックアウトしてチェリーピッキングすることを考えています。F

このプロセスは通常は問題なく機能しますが、かなり労力がかかります。1 つのブランチで行ったことは、他のブランチでも繰り返す必要があります。それを忘れると、バグにつながる不整合が生じる可能性があります。また、(たとえば) コミットBとの間に相関関係が記録されていないためB'、そのようなバグを追跡することは簡単ではありません。

共通の親コミットがなく、レプリケートされるべきではないalphaまたはの 1 つにコミットすることがあるため、あるブランチのコミットを別のブランチにプルするためにbeta使用できるとは思いません。git merge

featAアクションを他のブランチに複製するためにできるワークフローの改善または自動化はありますfeatBか?

4

1 に答える 1

0

git cherry-pickコミットを他のブランチに複製するために使用します。

http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html

于 2012-07-31T16:16:24.693 に答える