Понимание Git-коммитов является сложным и разным у разных людей. Опрос показал, что 51% считают коммиты как диффы (изменения между версиями), 42% - как снимки (текущее состояние файлов), а только 4% - как историю предыдущих коммитов.
Внутри Git хранит коммиты как снимки, что позволяет ускорять время чекаута. Однако он также использует пакфайлы для сжатия данных, храня файлы как дельты (разницы) для экономии места.
Несмотря на это реализацию на основе снимков, Git-разницы вычисляются реконструированием снимков из дельт и сравнением их.
Один из "неправильных" ментальных моделей - считать коммиты как диффы от предыдущего коммита, что, хотя и не точное, все еще может быть полезным в повседневном использовании.
Самый распространенный ментальный модуль, рассматривающий коммиты как диффы, соответствует типичному фокусу на изменениях кода. Другие модели, такие как снимки, полезны для понимания перемещения файлов и коммитов слияния.
Кроме того, люди могут связывать коммиты с дополнительной информацией (например, электронными письмами, разговорами) или видеть их как "до" и "после" состояния.
jvns.ca
Do we think of git commits as diffs, snapshots, and/or histories?
Create attached notes ...
