私は2つのリポジトリ、repo1とrepo2をそれぞれ1つのブランチで持っているので、リポジトリを次のようにグラフ化できます:
レポ1:A --- B --- C
レポ2:A --- B --- C --- D --- E --- F
ここからgit fast-export --all > export1
、repo1 とgit fast-export --all > export2
repo2 で実行して、"export1" と "export2" という 2 つのテキスト ファイルを作成します。
git diff export1 export2 > diffs.patch
次に、 から差分を取得するために実行しgit fast-export
、理論的にはコミットに関する情報のみを含むD --- E --- F
.
diffs.patch を変更する方法と、次のような分離された repo3 にパッチを適用できるようにするために使用するコマンドは次のとおりです。
レポ3:A --- B --- C --- G
パッチ ファイルが変更され、電子メールで送信され、適用されると、次のようになります。
repo3-patched: A --- B --- C --- G --- D --- E --- F
.
これは、(git bundle
バイナリファイルを使用できない)およびgit format-patch
(タグとブランチにもパッチを適用したいのですが、私の知る限りでgit format-patch
は実行できません)を使用せずに行う必要があります。