3

これが私のシナリオです:

githubのオープンソースプロジェクトを修正したいとしましょう。大まかに言えば、私は次のワークフローに従います。

  • githubでソースプロジェクトをフォークします
  • フォークをローカルに複製する
  • マスターからトピックブランチを作成する
  • 私の修正を行います(ここで無関係な詳細を振る手...)
  • トピックブランチをgithubにプッシュ
  • 元のソースプロジェクトにプルリクエストを送信する

さて、これを数回行ったとしましょう。そのため、issue#123とissue#456というトピックブランチがあります。元のソースプロジェクトには、マスターブランチに加えて、リリースブランチ(1.0、1.1など)があります。

このオープンソースプロジェクトのバージョン1.1を使用する独自のプロジェクトがあります。まだ安定していないので、オープンソースプロジェクトの「マスター」に対してビルドしたくありません。必要なのは、オープンソースプロジェクトの1.1ブランチのローカルビルドで、issue#123とissue#456の修正も含まれています。

セットアップに時間がかかって申し訳ありません...とにかく、私が現在行っているのは、my-1.1(1.1から分岐)というローカルブランチを作成し、トピックブランチから修正を選択してビルドし、結果を使用することです。私の別の依存プロジェクト。

チェリーピッキングがここに行く正しい方法であるかどうかは100%わかりませんが、マスターからの1.1以降のすべての変更(トピックブランチに存在する)が必要ないため、マージは正しくないようです。 「my-1.1」ブランチに流れ込みます。これが最善のアプローチですか?知っておくべき落とし穴はありますか?

私が考えることができる他の唯一のアプローチは、修正ごとに重複するトピックブランチを作成することです。1つはマスターからのブランチに、もう1つは1.1からのブランチに作成します。次に、マスターベースのトピックブランチからコミットを選択する代わりに、1.1ベースのトピックブランチをmy-1.1にマージできます。しかし、それは大きな問題のようです。

4

2 に答える 2

1

あなたがしたいことは、最も古いブランチからトピックのブランチを作成することです。その後、新しいものを誤って含めることなく、両方にマージできます。つまり、最初に 1.1 で修正を行い、次にそれを master にマージします。その逆ではありません。

于 2012-09-05T21:04:24.830 に答える