↓Перейти к содержанию
  1. Git: руководства и команды/

Git — расшифровка аббревиатуры и история создания

·4 минуты·

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.