2017-02-06 13 views
1

Я хочу переместить все мои файлы из Git Repo A в Git Repo B с полной историей. Git B уже содержит другие файлы проекта. Я попробовал несколько способов, таких какПереместить Git repo A в Git repo B (не пуст) с полной историей

How to move files from one git repo to another (not a clone), preserving history

How to move files from one git repo to another preserving history using `git format-patch`and `git am`

Я попытался исполняющих все коммиты через терминал. Но я получаю "git filter-branch fatal:myDirectory/: 'myDirectory' is outside repository Could not get the commits" при выполнении git filter-branch --subdirectory-filter muDirectory -- --all.

Мне нужно подробное руководство с пошаговой процедурой для перемещения всех файлов с одного репо на другое. Поблагодарили бы за любую помощь, спасибо заранее.

+1

Что вы ожидаете в результате перемещения репо в другое * непустое репо? – Amadan

+0

У моего репо B уже есть Proj1 и Proj2. Теперь я хочу, чтобы RepoA был перемещен как Proj3 в RepoB со всей историей фиксации из RepoA. –

ответ

2
  • Перейти в repoB и добавить новый пульт с repoA URL (скажем, repoA).
  • Оформить заказ новая отрасль (скажем, branchA) с repoA/master history.
  • Git переместить всю папку/файл в новый подкаталог RepoA. Команда git mv <src> <dest>.
  • Зафиксируйте изменения в branchA.
  • Оформить заказ master филиал и слияние branchA филиал.

Выполните команды:

# go into repoB master branch 
$ git remote add repoA <repoA-url> 
$ git remote -v      # confirm repoA is added named 'repoA' 

$ git fetch repoA 
$ git checkout -b branchA repoA/master 
$ git mv <folder/file> repoA/<folder/file>  # repeat untill all files/folders are moved 
$ git commit -am 'Moved repoA folder/file into repoA dir' 


$ git checkout master 
$ git merge branchA 

$ git add . 
$ git commit -m 'Added repoA into repoA directory' 
$ git push origin master 

Git поддерево: Вы можете сделать это с помощью git subtree также:

$ git subtree add --prefix=repoA/ <repoA-url> master 

Пулл master branch of repoA в подкаталоге с именем repoA.

+0

Я становлюсь фатальным: отказываюсь сливать несвязанную историю ошибок после git pull repoA master –

+0

Можете ли вы приложить свои 'команды и данные об ошибках' в OP (оригинальная публикация)? –

+0

BTW, вы хотите добавить 'RepoA' в свой' RepoB' как отдельное репо или только все папки/файлы в корневом каталоге? –