Ответ 1
Обратите внимание, что Git 1.9/2.0 (первый квартал 2014 года) снял это ограничение.
Смотрите коммит 82fba2b от Нгуен Тай pclouds
Дуй (pclouds
):
Теперь, когда git поддерживает передачу данных от или к мелкому клону, эти ограничения больше не верны.
--depth <depth>::
Создайте "мелкий" клон с историей, усеченной до указанного количества ревизий.
Это происходит от коммитов, таких как 0d7d285, f2c681c и c29a7b8, которые поддерживают клон, send-pack/receive-pack с/от мелких клонов.
smart-http теперь также поддерживает мелкую выборку/клонирование.
Все подробности находятся в " shallow.c
: 8 шагов для выбора новых коммитов для .git/shallow
".
Обновление от июня 2015: Git 2.5 даже позволит получить один коммит !
(Абсолютный мелкий случай)
Обновление от января 2016: Git 2.8 (Mach 2016) официально документирует практику получения минимальной истории.
См. Коммит 99487cf, коммит 9cfde9e (30 декабря 2015 г.), коммит 9cfde9e (30 дек. 2015 г.), коммит bac5874 (29 дек. 2015 г.) и коммит 1de2e44 (28 дек. 2015 г.) Стивена П. Смита ('').
(Объединено Junio C Hamano - gitster
- в коммите 7e3e80a, 20 января 2016 г.)
Это " Documentation/user-manual.txt
"
<<def_shallow_clone,shallow clone>>
создается путем указания переключателяgit-clone --depth
.
Позднее глубину можно изменить с помощью переключателяgit-fetch --depth
или восстановить полную историю с помощью--unshallow
.Слияние внутри
<<def_shallow_clone,shallow clone>>
будет работать, пока база слияния находится в недавней истории.
В противном случае это будет похоже на объединение несвязанных историй и может привести к огромным конфликтам.
Это ограничение может сделать такое хранилище непригодным для использования в рабочих процессах на основе слияния.
Для получения дополнительной информации о процессе обновления мелкого клона см. " Как обновить мерзкий клон git? ".
Как прокомментировал Ричард Майкл:
git pull --unshallow
историю:git pull --unshallow
И Олле Херстедт добавляет в комментариях:
Чтобы заполнить часть истории:
git fetch --depth=100
.