#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".
Комментариев нет:
Отправить комментарий