Git fetch работает вечно - PullRequest
       16

Git fetch работает вечно

0 голосов
/ 23 ноября 2018

У меня есть хранилище с именем 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
...