Простой git clone
в корне документа не совсем точен. Клонирование открытого GIT-репозитория невозможно на « тупых » серверах, таких как случайное использование .git через HTTP, если на сервере не выполняется git update-server-info
. В то время как некоторые из метаданных доступны, получение содержимого каталога .git/objects
(ака сочные вещи) не всегда возможно. Можно восстановить объекты , которые не упакованы . Не должно быть в случае с рабочей копией / хранилищем на производственном сервере.
Это другая история для машины для разработки с зафиксированными изменениями, которые не передаются на удаленный компьютер. В этом случае сборщик мусора обычно не вызывается, если только вы не вызываете git gc
, следовательно, файлы еще не являются частью packfiles. Вы можете восстановить через HTTP файлы, которые были зафиксированы с момента последнего нажатия.
update-server-info в основном создает карту ссылок (.git/info/refs) и пакетов (.git/objects/info/packs). Несмотря на то, что .git/pack-refs может использоваться для замены первого, получение упаковочных файлов невозможно без включения индекса каталога или фактического подбора SHA-1 (что является плохой идеей с самого начала).