Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Как перенести коммиты из одного репозитория в другой?

#git


Есть 2 репозитория, в одном изначально работа велась, другой создан для другого разработчика.
Боль в том, что второй репозиторий был скопирован и инициализрован снова. 

Разраб сделал изменения и вопрос как теперь перетащить их свой основной репозиторий?
Работа в котором тоже велась.  

Как быть? И что делать теперь?)  

В данный момент коммиты вроде как перетащил с помощью remote 

Но по факту изменений никаких нет.
    


Ответы

Ответ 1



так как хранилища имеют разную историю (второе хранилище, как я понял, было создано в виде коммита, содержащего файлы/каталоги первого хранилища на определённый момент времени), то наиболее безболезненный путь переноса изменений из второго хранилища в первое — воспользоваться связкой команд format-patch + am. во втором хранилище надо сформировать файлы с патчами для каждого коммита, начиная с самого первого (он как раз не будет включен): $ git format-patch хэш-первого-коммита в текущем каталоге будут сформированы файлы вида: 0001-сообщение-коммита-следующего-за-указанным.patch 0002-сообщение-следующего-за-ним-коммита.patch ... эти патчи надо командой am применить в первом хранилище: $ git am /путь/к/каталогу/*.patch в процессе применения могут, конечно, возникнуть конфликты. программа git подскажет, как действовать (устранить конфликт и продолжить, либо пропустить патч, либо прервать всю процедуру и вернуться к прежнему состоянию): Applying: сообщение коммита, который вызвал сбой error: описание причины ошибки Patch failed at название файла с этим патчем The copy of the patch that failed is found in: .git/rebase-apply/patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".

Комментариев нет:

Отправить комментарий