0

ローカル リポジトリのアップストリーム プロジェクトにいくつかの変更を加えました。私は元々、上流のリポジトリを自分のローカル プロジェクトに単純にコピーしました。ここで、さまざまなコミットを取得して、上流のリポジトリに適用したいと思います。パッチでこれを行うことができましたが、サブツリー マージを使用してこれを行うことができるかどうか疑問に思っていました。

したがって、より具体的には:

# project structure
root
  projectB
  ...

# history
HEAD
C
B
A

projectB のリポジトリをリモートとして追加し、そのブランチの 1 つをチェックアウトする場合、変更 B と A をこのブランチにマージし、他の変更をメイン リポジトリに残して、最後にブランチを projectB のリモートに戻すにはどうすればよいですか?

考え?

4

1 に答える 1

1

サブツリーの分割は、あなたが望むことをするべきです。

git subtree split --prefix=projectB --rejoin --branch=project-B-split

project-B-split という名前の新しいブランチを作成します。これには、projectB 内のファイルにのみ影響するコミットが含まれています。これは、projectB のマスターにプッシュするのに適しているはずです。適切なリベースを行った後、(潜在的に) Patrick がコメントで示唆しているように、クリーン コピーがない場合はチェリー ピッキングを行ってください。これは、最初に projectB ソースをどのように取得したかによって異なります。具体的には、その履歴をレポに持ち込んだかどうかです。

于 2012-10-25T09:20:45.753 に答える