2016-08-08 6 views
0

Я сделал git repo foo, а затем начал работать. Двадцать коммитов позже, я скопировал все файлы из репо в новый каталог bar и создал новый git repo. Теперь у меня есть двадцать коммитов на репозитории bar.Объединить две копии одного и того же репозитория git

Как объединить два репозитория, чтобы у меня была одна чистая история? Я хочу избавиться от первого коммита в репозитории bar и добавить остальные в репозиторий foo.

+0

'git-diff-tree' или' git-diff-files' с опцией '-p' будет генерировать файл патча. Примените его обратно в 'foo' с помощью' git apply' или 'git am' –

+0

https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/ –

ответ

2

Вы можете добавить второй репозиторий в качестве удаленного к первому репо, а затем переустановить все эти коммиты на ветку репозитория foo.

Внутри foo хранилища сделать это, чтобы добавить bar репозиторий

$ git remote add bar <path-to-bar> 
$ git fetch bar 

Теперь найти коммит вы хотите перебазироваться (в вашем случае второй один) и сделать

$ git rebase master <hash-of-second-commit> 

В зависимости от того, как эти два репозитория отличаются тем, что все может применяться чисто, или вам, возможно, придется разрешать конфликты слияния.