--depth 1
Вариант в git clone
:
Создайте неглубокий клон с историей, усеченной до указанного количества ревизий. Мелкий репозиторий имеет ряд ограничений (вы не можете клонировать или извлекать из него, ни выдвигать, ни извлекать его), но он подходит, если вас интересует только недавняя история большого проекта с длинной историей, и вы хотите отправить исправления в виде исправлений.
Но я успешно сделал мелкий клон, внес некоторые изменения и перенес эти изменения обратно в источник (голый клон).
Это имеет смысл для меня - я имею в виду, почему нет? когда клонированная ГОЛОВА идентифицируется в источнике, и мой коммит приходит поверх этого, кажется, нет никакой причины. Но в руководстве сказано иначе.
Мне нравится идея мелкого клона - например, о ядре друпала: мне не нужно знать, что происходило в друпале 4, когда я начинал с 7. - но я не хочу стрелять себе в ногу.
Так безопасно ли копировать клон, разрабатывать коммиты в нем, снова тянуть, чтобы не отставать от обновлений от происхождения?
источник
--orphan
концепция кажется похожи , и я намерен иметь люфт. Все еще немного расстроенный, что документы не соответствуют действительности [потому что, кто говорит, что документы--orphan
правильны ?!]Ответы:
Обратите внимание, что Git 1.9 / 2.0 (первый квартал 2014 года) снял это ограничение.
Смотрите коммит 82fba2b от Нгуен Тхай Нгук Дуй (
pclouds
) :Документация теперь гласит :
Это происходит из коммитов , таких как 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 г.). Автор Stephen P. Smith (``) .
(Слиты Junio C Hamano -
gitster
- в фиксации 7e3e80a , 20 января 2016)Это "
Documentation/user-manual.txt
"Обновление 2020:
git fetch --shallow-exclude=
для предотвращения выборки всей истории.git fetch --shallow-since=
для предотвращения получения старых коммитов.Для получения дополнительной информации о процессе обновления мелкого клона см. « Как обновить мерзкий клон git? ».
Как прокомментировал Ричард Майкл :
И Олле Харстедт добавляет в комментариях :
источник
Посмотрите некоторые ответы на мой похожий вопрос " почему-не могу-толкнуть-от-мелкого-клона" и ссылку на недавнюю ветку в списке мерзавцев.
В конечном счете, измерение «глубины» не согласуется между репозиториями, потому что они измеряют по своим отдельным заголовкам, а не (а) вашей голове или (б) коммиту (ам), который вы клонировали / получили, или (в) что-то еще ты имел в виду.
Сложность заключается в том, чтобы правильно понять свой Вариант использования (то есть самосогласованный), чтобы распределенные и, следовательно, вероятно, расходящиеся репо все равно работали вместе.
Похоже, что
checkout --orphan
это правильный этап «настройки», но все еще не хватает четкого (т. Е. Простой понятной однострочной команды) руководства по этапу «клонирования». Скорее всего, вам нужно сделатьinit
репо, настроитьremote
отслеживающую ветвь (вы хотите только одну ветку?), А затемfetch
эту единственную ветку, которая кажется долгой, изобилующей большим количеством возможностей для ошибок.Изменить: для шага «клон» см. Этот ответ
источник