Git — расшифровка аббревиатуры и история создания
Git — не аббревиатура в традиционном смысле. Линус Торвальдс, создавший Git, называл его по-разному в зависимости от настроения. Официального «полного» названия нет, но есть устоявшийся термин Git SCM, который используется в официальной документации.
Расшифровки Git от автора #
Линус Торвальдс в первом коммите README к Git (7 апреля 2005 года) написал:
«git» can mean anything, depending on your mood.
- Random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of “get” may or may not be relevant.
- Stupid. Contemptible and despicable. Simple. Take your pick from the dictionary of slang.
- “Global information tracker”: you’re in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
- “Goddamn idiotic truckload of sh*t”: when it breaks.
Торвальдс использовал слово «git» (британский сленг — «неприятный человек») намеренно — по его словам, он называет свои проекты в честь себя самого. Linux — по имени, git — по характеру.
Наиболее распространённая «официальная» расшифровка: Global Information Tracker — глобальный трекер информации.
Git SCM: что такое SCM #
SCM расшифровывается как Source Code Management (управление исходным кодом) — синоним VCS (Version Control System). Официальный сайт — git-scm.com.
Git SCM = Git Source Code Management
= Git Version Control System
= система контроля версий Git
Термины VCS, SCM, RCS (Revision Control System) — практически синонимы в контексте Git.
История создания: апрель 2005 #
Git появился из конкретной проблемы. Ядро Linux разрабатывалось с использованием BitKeeper — проприетарной распределённой VCS. В 2005 году компания BitMover отозвала бесплатную лицензию для Linux-разработчиков после конфликта с сообществом.
Хронология:
Начало апреля 2005:
BitMover отзывает лицензию на BitKeeper
3 апреля 2005:
Торвальдс начинает разработку Git
7 апреля 2005:
Первый коммит в репозиторий Git (Git написан сам на себе)
16 июня 2005:
Ядро Linux 2.6.12 — первый релиз, управляемый Git
26 июля 2005:
Торвальдс передаёт поддержку Git Джунио Хамано
(Junio Hamano — главный мэйнтейнер по сей день)
За две недели Торвальдс написал первую рабочую версию. За следующие месяцы Git достиг производительности BitKeeper.
Технические принципы, заложенные изначально #
При создании Git Торвальдс поставил конкретные цели:
1. Скорость
Все операции должны быть быстрее, чем у CVS
(даже при худших условиях)
2. Простая архитектура
Минималистичный дизайн: небольшое ядро,
всё остальное — обёртки
3. Поддержка нелинейной разработки
Тысячи параллельных веток
Быстрое создание и слияние
4. Полное распределение
Нет центрального сервера по умолчанию
5. Способность обрабатывать большие проекты
Рассчитан на масштаб ядра Linux
(20+ млн строк кода, тысячи разработчиков)
Архитектура: контентно-адресуемая файловая система #
Ключевая идея Git — хранить данные как граф объектов, а не как дельты (разницы):
CVS/SVN: хранит изменения (delta)
version 1 → +3 строки, -1 строка → version 2
Git: хранит снимки (snapshots)
version 1 → полный снимок состояния
version 2 → полный снимок состояния
(идентичные файлы переиспользуются)
Каждый объект идентифицируется SHA-1 хешем (40 символов). Это делает историю:
- верифицируемой (нельзя изменить без изменения хеша)
- дедуплицированной (идентичные файлы хранятся один раз)
Развитие Git #
2005: Первая версия, передана Хамано
2007: Git 1.5 — значительное улучшение пользовательского интерфейса
2008: GitHub запущен — массовое распространение
2010: Git становится самой популярной VCS в open source
2018: Git 2.17 — SHA-256 поддержка (в разработке)
2019: GitHub куплен Microsoft за $7.5 млрд
2020: Переименование ветки master → main (github.com)
2023: Git 2.41+ — улучшения производительности для больших репозиториев
Git vs Mercurial #
В 2005 году одновременно с Git появился Mercurial (Hg) — тоже распределённая VCS, созданная как альтернатива BitKeeper:
Git:
- Создан Торвальдсом для Linux
- Более гибкий (можно переписывать историю)
- Сложнее в изучении
- Победил за счёт GitHub
Mercurial:
- Более простой интерфейс
- Менее гибкий
- Использовался Facebook, Python, Mozilla
- Bitbucket убрал поддержку Mercurial в 2020
- Проиграл Git в популярности
Произношение #
Правильно: [gɪt] — «гит» (как в английском "get", но с коротким i)
В русской транслитерации: «гит»
Неправильно: «джит», «жит»
Часто задаваемые вопросы #
Почему Торвальдс назвал программу «git»? Он называет свои проекты в честь себя. Linux — своё имя, git — британский сленг для «неприятного человека». Ироничное самоназвание.
Что значит git-scm.com? SCM = Source Code Management. Официальный сайт с документацией по Git — git-scm.com. «Pro Git» (книга) тоже размещена там бесплатно.
Почему Git выбрал SHA-1 а не MD5? SHA-1 длиннее и в 2005 году считался достаточно надёжным для целостности данных (не для криптографии). Git начал миграцию на SHA-256 в версии 2.29, но это опциональная функция.
Кто сейчас развивает Git? Главный мэйнтейнер — Джунио Хамано с 2005 года. Разработка ведётся открыто в репозитории git/git на GitHub с участием тысяч контрибьюторов.
Git и GitHub — одно и то же? Нет. Git — система контроля версий (программа). GitHub — облачный хостинг репозиториев на основе Git (сервис). Git создан в 2005, GitHub — в 2008.
Заключение #
Git — не аббревиатура. Торвальдс называл его «Global Information Tracker» когда доволен и «Goddamn Idiotic Truckload of sh*t» когда не доволен. Создан в апреле 2005 года за две недели для нужд разработки ядра Linux. Распределённая архитектура, хранение данных как снимков и SHA-хеширование сделали Git революционным инструментом. Подробнее о принципах работы — что такое Git и введение в Git.