Als Hack können Sie versuchen, das Rezept für den Vergleich von Commits in zwei verschiedenen Repositorys auf der GitTips-Seite zu ändern , z.
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects \
git cherry-pick $(git --git-dir=../repo/.git rev-parse --verify <commit>)
Wo ../repoist der Pfad zum anderen Repository?
Mit modernem Git können Sie mit Cherry-Pick mehrere Revisionen und Revisionsbereiche verwenden .
Das $(git --git-dir=../repo/.git rev-parse --verify <commit>)
ist hier, um <commit>(zum Beispiel HEADoder v0.2, oder master~2, was Werte im zweiten Repository sind, aus dem Sie kopieren) in die SHA-1-ID des Commits zu übersetzen. Wenn Sie SHA-1 einer Änderung kennen, die Sie auswählen möchten, ist dies nicht erforderlich.
Beachten Sie jedoch, dass Git das Kopieren von Objekten aus dem Quell-Repository überspringen kann, da es nicht weiß, dass das alternative Objekt-Repository für einen Vorgang nur vorübergehend ist. Möglicherweise müssen Sie Objekte aus dem zweiten Repository kopieren mit:
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects git repack -a -d -f
Dadurch werden die aus dem zweiten Repository ausgeliehenen Objekte in den ursprünglichen Repository-Speicher verschoben
Nicht getestet.
Eine nicht so hackige Lösung ist es, der knittl Antwort zu folgen :
- Wechseln Sie zum zweiten Repository, aus dem Sie Commits kopieren möchten, und generieren Sie Patches aus Commits, mit denen Sie Commits durchführen möchten
git format-patch
- Kopieren Sie optional Patches (0001- * usw.) in Ihr Repository
- Verwenden Sie
git am --3waydiese Option , um Patches anzuwenden