попытался переместить git-репозиторий в другой репозиторий, не удалось - PullRequest
0 голосов
/ 09 марта 2012

У меня есть два репозитория git:

git_repo_A: https://github.com/gnychis/coexisyst
git_repo_B: https://github.com/gnychis/android-wireless-monitor

Я хочу переместить все в git_repo_A в подкаталог в git_repo_B с именем: application.Я хочу сохранить все коммиты и историю файлов.

Итак, после перемещения git_repo_A будет выглядеть так:

git_repo_A/application/git_repo_B

Я нашел этот веб-сайт, который описывал в основном ту операцию, которую я хотел: http://www.nomachetejuggling.com/2011/09/12/moving-one-git-repo-into-another-as-subdirectory/

Итак, я дал ему шанс, но я не думаю, что он сделал то, что хотел.

То, что в итоге произошло, выглядит так: два. * Файла в главном каталоге были добавлены в git_repo_A / ... и затем все, что я хотел показать как git_repo_A / application, закончилось как операция удаления.Вот соответствующие две операции, которые были перемещены в git_repo_A:

https://github.com/gnychis/android-wireless-monitor/commit/23e6639221733158d197bf7c29df8998e8a5c2ef

https://github.com/gnychis/android-wireless-monitor/commit/455ba86a80d8300b16bdd9527c444ebad78f7a9a

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

Я единственный, кто использует эти репозитории.Так что было бы неплохо сбросить все, что произошло 9 марта, и начать заново: https://github.com/gnychis/android-wireless-monitor/commits/

1 Ответ

3 голосов
/ 09 марта 2012

Я делал нечто очень похожее на это раньше.Он почти идентичен процессу, указанному в вашей ссылке, за исключением того, что он позволяет вам очистить вещи перед совершением слияния.

1) В RepoB (тот, который вы хотите сохранить) добавьте пульт дистанционного управления в RepoA
git remote add RepoA <path_to_repo>

2) Извлечение истории RepoA в RepoB
git fetch RepoA

3) Объединение соответствующих ветвей (если вы находитесь на RepoB / master)
git merge RepoA/master

4) Переместите файлы RepoA в соответствующую подпапку и подтвердите
git add .
git commit -a


Если вы ничего не сделали с вашим RepoB с тех порследуя инструкциям, которые вы опубликовали, вы можете сделать это: git reset HEAD~
Теперь переместите любые файлы и очистите то, что вам нужно.
git add .
git commit -a


НасколькоЧто касается перемещения файлов и сохранения истории, git будет отслеживать переименования для небольшого числа файлов по умолчанию, поскольку это происходит медленно.Если вы хотите, чтобы он отслеживал все, вы можете использовать следующую команду
git config --global diff.renamelimit 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...