Открыть сервис

Git — распределённая система контроля версий

Git — распределённая система управления версиями, предназначенная для отслеживания изменений в файлах и координации работы нескольких разработчиков над одним проектом. Создана Линусом Торвальдсом в 2005 году для разработки ядра Linux. Относится к классу DVCS (distributed version control systems), при этом каждый локальный репозиторий содержит полную историю проекта.

История

До 2005 года ядро Linux разрабатывалось с использованием проприетарной системы BitKeeper, предоставлявшейся бесплатно. После конфликта с правообладателем лицензия была отозвана, и сообществу потребовался свободный инструмент. Торвальдс начал разработку Git в апреле 2005 года; первая версия была готова за несколько дней, а уже к июлю сопровождение ядра перевели на новую систему. Название, по распространённой версии, происходит от британского сленгового слова, означающего «неприятный человек».

Архитектура

Git хранит данные как последовательность снимков (snapshots), а не как набор различий между версиями. Ключевые объекты:

  • blob — содержимое файла;
  • tree — структура каталогов и ссылки на blob-объекты;
  • commit — снимок с указателем на родительский коммит, автором и сообщением;
  • tag — именованная метка.

Каждый объект идентифицируется SHA-1-хешем (в новых версиях поддерживается SHA-256). Целостность обеспечивается тем, что хеш зависит от содержимого и родительских объектов.

Основные понятия

ТерминЗначение
РепозиторийХранилище истории проекта
Ветка (branch)Независимая линия разработки
КоммитЗафиксированное изменение
Удалённый репозиторийКопия на сервере (GitHub, GitLab и др.)
MergeСлияние веток
RebaseПеренос коммитов на новую базу

Типичные команды: git init, git clone, git add, git commit, git push, git pull, git branch, git merge.

Распределённая модель

В отличие от централизованных систем (SVN, CVS), в Git полная копия истории хранится у каждого участника. Это позволяет работать автономно, коммитить без подключения к сети и синхронизироваться позже. Центральный сервер выполняет роль точки обмена, но не является единственным хранилищем.

Применение

Git используется в подавляющем большинстве открытых и коммерческих проектов. На его основе построены платформы GitHub, GitLab, Bitbucket, Gitea. Система применяется не только в разработке ПО, но и для версионирования документации, конфигураций, научных данных.

Значение

Git стал де-факто стандартом контроля версий. Появление распределённой модели упростило ветвление и слияние, что способствовало распространению практик непрерывной интеграции и открытой разработки.

IRONLIVE — база данных и аналитика по компаниям России.

На главную IRONLIVE →