Як хак, ви можете спробувати змінити рецепт порівняння комісій у двох різних сховищах на сторінці GitTips , тобто:
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects \
git cherry-pick $(git --git-dir=../repo/.git rev-parse --verify <commit>)
де ../repoшлях до іншого сховища.
У сучасному Git ви можете використовувати декілька версій та діапазонів ревізій із вишневим вибором .
$(git --git-dir=../repo/.git rev-parse --verify <commit>)
Тут , щоб перевести <commit>(наприклад HEAD, чи v0.2, або master~2, які є значеннями в другому сховище скопійованого з) в SHA-1 ідентифікатор фіксації. Якщо ви знаєте SHA-1 зміни, яку хочете вибрати, це не обов'язково.
Зауважте, що Git може пропустити копіювання об'єктів із вихідного сховища, оскільки він не знає, що альтернативний сховище об'єктів є лише тимчасовим для однієї операції. Можливо, вам доведеться скопіювати об’єкти з другого сховища за допомогою:
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo/.git/objects git repack -a -d -f
Це ставить ці об'єкти, запозичені з другого сховища, в оригінальному сховищі репозиторію
Не перевірений.
Не настільки шалений рішення - це слідувати відповіді на трикотаж :
- Перейдіть до другого сховища, з якого ви хочете скопіювати документи, та генеруйте виправлення із комітетів, які ви хочете
git format-patch
- За бажанням скопіюйте виправлення (0001- * тощо) у ваше сховище
- Використовуйте
git am --3wayдля нанесення патчів