Есть ли способ заставить git pull
сохранить depth=1
, просто использовать последний коммит вместо того, который был сделан git-клоном (если есть более новый)?
II do git clone -b some_branch --depth=1 git_repo.git
Клонирует хранилище с минимальным использованием пространства, поскольку удаляет всю историю. Теперь, если мне нужно снова обновить этот репозиторий и использовать git pull
, он тянет всю историю.
Здесь есть похожий вопрос:
Получать обновления с помощью git после клонирования с --depth 1
Если попытаться принять ответный совет и использовать git pull --unshallow
, а затем git pull --depth=1
, похоже, что это не уменьшает пространство, так какgit clone --depth=1
делает.
Таким образом, единственный способ действительно уменьшить размер хранилища - это просто удалить хранилище и снова клонировать с depth=1
?. Выглядит как-то неуклюже, как это сделать.
И причина, по которой мне это нужно, заключается в том, что существуют репозитории, используемые при полной клонации, в настоящее время занимающие размер ~3 GB
. И есть около 40 сред, где он используется. В общем, он использует много места. С мелким клоном его можно уменьшить примерно в 5 раз.
Пример:
Клонирование этой ветви репозитория 12.0 git@github.com:odoo/odoo.git
, показывает ее размер около 3 ГБ.
Клонирование этой ветви репозитория 12.0 с depth=1
, показывает размер, равный 643 МБ.
Использование --unshallow
при извлечении, а затем (как предложено здесь Преобразование репозитория git в мелкое? ):
git pull --depth 1
git gc --prune=all
Не похоже, чтобы уменьшить размер, как мелкий клон.