У меня есть хранилище с именем old-repo
и дубликат new-repo
.Некоторая работа была проделана на old-repo
, которую я хочу перенести на new-repo
.Я думал, что это будет легко сделать, добавив old-repo
в качестве удаленного и объединяя изменения, но git fetch
требует вечности.
Я не думаю, что хранилище очень большое;он составляет около 250 МБ, большая часть которого находится в каталоге данных теста в виде TIFF
изображений.На пульте также имеется около 200 ветвей.
Выполнение git clone old-repo
занимает ~ 10 сек, но если я выполню следующие шаги:
$ git clone NEW_REPO_URL.git
$ cd new-repo
$ git remote add old-repo OLD_REPO_URL
$ git fetch old-repo -v --progress
, единственный вывод:
POST git-upload-pack (gzip 32749 to 16521 bytes)
и дальнейшего прогресса нет, поэтому я должен выйти из работы с CTRL-C
.
Я попытался вытянуть только одну ветку git fetch old-repo dev
или мелкую выборку git fetch old-repo depth=1
, нокогда я пытаюсь выполнить другую команду, например git diff old-repo/dev
, я получаю следующую ошибку:
fatal: ambiguous argument 'old-repo/dev': unknown revision or path not in the working tree.
Кто-нибудь знает, почему выборка может выполняться так медленно?Или, если есть способ получить только ветку dev
, чтобы я мог объединить изменения (меня не интересуют все остальные ветви на удаленном компьютере).Я пробовал поиск в интернете, но большинство результатов о медленном клонировании, что было не тем, что я хотел.
РЕДАКТИРОВАТЬ - ВОЗМОЖНОЕ РЕШЕНИЕ:
Я еще не нашел решение,но есть обходной путь.Можно использовать локально клонированное хранилище вместо удаленного:
git remote add old-repo ../old-repo
git remote update
Это работает нормально, но процедура обновления немного сложнее.Вместо git pull old-repo dev
вы должны:
cd ../old-repo
git pull
cd ../new-repo
git remote update
git pull old-repo dev