Есть ли в git концепция сжатия журналов?
Система контроля версий git- это своего рода распределенный журнал (с некоторыми концептуальными сходствами с протоколом консенсуса на плоту).
Raft и некоторые другие системы имеют концепцию сжатия журналов, поэтому новым клиентам не нужно просматривать весь набор изменений, чтобы применить изменения.
Мой вопрос: есть ли у git концепция сжатия журналов?
1 ответ
новым клиентам не нужно просматривать весь набор изменений, чтобы применить изменения.
Нет, git - это коллекция снимков (полная копия рабочего дерева).
Когда вы получаете доступ к коммиту в git, вам не нужно просматривать весь журнал или историю, чтобы построить его содержимое.
Смотрите " Как git хранит файлы?": Внутреннее хранилище использует дельту в пакетных файлах (это форма "сжатия", а не просто "сжатие журнала"), но каждый коммит все еще представляет полное рабочее дерево.
Каждый раз, когда вы фиксируете или сохраняете состояние вашего проекта в Git, он в основном делает снимок того, как все ваши файлы выглядят в данный момент, и сохраняет ссылку на этот снимок.
Чтобы быть эффективными, если файлы не изменились, Git не хранит файл снова - просто ссылка на предыдущий идентичный файл, который он уже сохранил.