Есть ли в git концепция сжатия журналов?

Система контроля версий git- это своего рода распределенный журнал (с некоторыми концептуальными сходствами с протоколом консенсуса на плоту).

Raft и некоторые другие системы имеют концепцию сжатия журналов, поэтому новым клиентам не нужно просматривать весь набор изменений, чтобы применить изменения.

Мой вопрос: есть ли у git концепция сжатия журналов?

1 ответ

Решение

новым клиентам не нужно просматривать весь набор изменений, чтобы применить изменения.

Нет, git - это коллекция снимков (полная копия рабочего дерева).
Когда вы получаете доступ к коммиту в git, вам не нужно просматривать весь журнал или историю, чтобы построить его содержимое.

Смотрите " Как git хранит файлы?": Внутреннее хранилище использует дельту в пакетных файлах (это форма "сжатия", а не просто "сжатие журнала"), но каждый коммит все еще представляет полное рабочее дерево.

https://stackru.com/images/4b1eee05c298d2432a7052268a68ec4e7b968926.png

Каждый раз, когда вы фиксируете или сохраняете состояние вашего проекта в Git, он в основном делает снимок того, как все ваши файлы выглядят в данный момент, и сохраняет ссылку на этот снимок.
Чтобы быть эффективными, если файлы не изменились, Git не хранит файл снова - просто ссылка на предыдущий идентичный файл, который он уже сохранил.

Другие вопросы по тегам