Как получить коммиты Git небольшими партиями
Возможно ли получить удаленный репозиторий без извлечения всех коммитов, которые отсутствуют, но, скажем, партиями по 100 коммитов?
У меня есть репозиторий на моем компьютере, который используется в качестве ссылки для других репозиториев, чтобы ускорить время развертывания. К сожалению, я некоторое время не обновлял его, и он не синхронизирован с удаленным репозиторием. GitHub ужасно медленный (40-50 кбит / с), и у меня есть около 150 МБ для загрузки. Это еще менее забавно, когда Git перестает скачивать на 81%....
Есть ли способ уменьшить количество коммитов для получения? Я думал использовать --depth
аргумент, но у меня нет мелкого репозитория Git, и я не хочу, чтобы он стал таким. Так же --depth
кажется, не работает как выборка фиксирует с этой даты до этой даты (что было бы также неплохо). Так что я мог бы получать коммиты день за днем, если это возможно.
Проблема в том, что при сбое извлечения мне нужно перезапустить с того места, где я находился до начала извлечения. Я хотел бы иметь возможность получать меньшие куски, поэтому, если это не удастся, мне не придется загружать 150 МБ снова и снова на низкой скорости.
1 ответ
Второе предложение @Vampire, если вы можете попробовать переключить протоколы; Я обнаружил, что SSH гораздо более надежен, чем HTTPS, для передачи данных Git.
AFAIK, невозможно перечислить коммиты в удаленном репозитории (вы можете получить только последний SHA для данной ветки). (Если бы это было так, то я бы просто изменил свой ответ на "Как установить максимальное количество коммитов на git push".) Однако, если у вас есть удобный SHA коммит, вы можете указать коммит для загрузки с помощью:
git fetch origin 96de5297df870:refs/remotes/origin/master
(Это обновит ваш origin/master
отслеживание ветви, чтобы указать на этот коммит.)
Поскольку ваш код размещен на GitHub, я рекомендую вам проверить журнал на GitHub и извлекать конкретные коммиты, подобные этой, пока вы не будете в курсе. Кроме того, вместо того, чтобы извлекать определенное количество коммитов за раз, я предлагаю вам разделить коммиты, чтобы выяснить, сколько вы можете загрузить за один раз.