3. Git: система управления версиями для всех. Меньше теории, больше практики. Чем отличается Git от других VCS?

Система уплавения версиями Git появилась 7 апреля 2005 г., одним из инициаторов создания был Linus Torvalds (тот кто подарил нам Linux kernel). Главными плюсами Git являются:
  • Атомарность
  • Производительность
  • Безопасность
Атомарность - это способность операции выполняться целиком между ее вызовом и ее выходным ответом. Т.е. либо операция выполняется полностью либо она отменяется.

CVS, Subversion, Perforce, Bazaar и некоторые другие системы контроля версий работают по следующей схеме:


Git работает по другой схеме:


В первом случае VCS хранят разницу Δ между версиями для каждого файла.
Во втором случае Git хранит снимок (snapshot) каждой версии. Это увеличивается скорость. Каждый раз как создается новая версия, создается новый снимок. Но это не значит что Git хранит несколько копий файлов, если изменений не было, то просто создается ссылка на файл в предыдущем снимке.

Git использует контрольные суммы. SHA-1 хеш - это 40 шестнадцатиречных символов (a-f и 0-9), который генерируется на базе содержимого файла или папки. Это означает что невозможно изменить файл или папку чтобы об этом не стало известно Git.