ハックとして、GitTipsページの2つの異なるリポジトリでコミットを比較するためのレシピを変更してみてください。
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects \
git cherry-pick $(git --git-dir=../repo/.git rev-parse --verify <commit>)
ここで、../repo
他のリポジトリへのパスです。
最新のGitでは、cherry-pickで複数のリビジョンとリビジョン範囲を使用できます。
$(git --git-dir=../repo/.git rev-parse --verify <commit>)
翻訳するためにここにある<commit>
(例えばHEAD
、またはv0.2
、またはmaster~2
コミットのSHA-1の識別子にコピー元二リポジトリ内の値です)。選択する変更のSHA-1がわかっている場合は、必要ありません。
ただし、Gitはソースリポジトリからのオブジェクトのコピーをスキップできることに注意してください。これは、代替オブジェクトリポジトリが一時的なものであることが1つの操作で認識されないためです。次のようにして、2番目のリポジトリからオブジェクトをコピーする必要がある場合があります。
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects git repack -a -d -f
これにより、2番目のリポジトリから借用したオブジェクトが元のリポジトリストレージに配置されます
未検証。
それほどハッキーではない解決策は、ニットの答えに従うことです:
- コミットをコピーする2番目のリポジトリに移動し、必要なコミットからパッチを生成します
git format-patch
- 必要に応じて、パッチ(0001- *など)をリポジトリにコピーします
git am --3way
パッチの適用に使用します