Git — распределённая система контроля версий, созданная Линусом Торвальдсом в 2005 году для разработки ядра Linux. Она хранит полные снимки состояния проекта, работает локально и удалённо, позволяет откатиться к любой версии кода и организует параллельную работу команды. Сегодня Git — промышленный стандарт в разработке программного обеспечения.
До Git программисты пользовались централизованными системами вроде CVS: один центральный сервер хранил историю, и любой сбой грозил потерей данных. Линус Торвальдс создал Git как распределённую альтернативу — быструю и надёжную. Принципиальное отличие: Git хранит не дельты (разницу между версиями), а снимки (snapshots) — полное состояние проекта в каждый момент. Это даёт мгновенный откат к любой точке и гарантирует, что у каждого участника есть полная копия истории.
Учитесь бесплатно за счёт государства
Экономия до 100 000 ₽ на любой программе
Представьте Git как «Ctrl+Z для целого проекта, который помнит каждое нажатие». Или думайте о нём как о точках сохранения в видеоигре: каждый коммит — save point с именем, датой и автором. В отличие от обычной отмены, Git не забывает ни один шаг — вы можете вернуться к любой точке в истории проекта.

Git работает по трёхуровневой модели: рабочая директория → область индексирования (Staging Area) → репозиторий. Сначала вы правите файлы, затем командой git add переносите нужные изменения в Staging Area — промежуточную зону, где формируется будущий снимок. Только после этого git commit фиксирует снимок в репозитории навсегда.
Репозиторий — хранилище кода со всей историей изменений. Создаётся командой git init, которая добавляет скрытую папку .git в корень проекта. Существует два типа: локальный (на вашем компьютере) и удалённый (на GitHub, GitLab или BitBucket). Распределённая архитектура означает, что у каждого участника команды есть полная копия репозитория — нет единой точки отказа.

Коммит — снимок проекта в конкретный момент. Каждый коммит получает уникальный хеш, содержит сообщение об изменениях, имя автора и дату. Делайте коммит после каждого логически завершённого изменения — это упрощает откат версии и помогает команде читать историю. Ветка — последовательность коммитов: основная называется main или master, дополнительные ветки изолируют работу над новыми функциями. Слияние выполняют командой git merge. Если два разработчика одновременно правили один участок кода, возникает конфликт слияния — его разрешают вручную.
Распространённое заблуждение: GitHub равно Git. На деле GitHub использует Git, но это разные вещи.
| Параметр | Git | GitHub |
|---|---|---|
| Что это | Система контроля версий | Веб-сервис для хранения репозиториев |
| Где живёт | На компьютере разработчика | В облаке, на серверах Microsoft |
| Регистрация | Не нужна | Нужна |
| Аналогия | Двигатель | Автомобиль с кузовом |
| Альтернативы | — | GitLab, BitBucket |
Таблица 1. Сравнение Git и GitHub. Составлено по открытой документации проектов.
GitHub отображает активность в виде «зелёного ковра» — сетки коммитов за год. Работодатели запрашивают профиль на собеседованиях, чтобы оценить реальный опыт. GitLab подходит компаниям с собственными серверами, BitBucket — командам в экосистеме Atlassian.


Базовый workflow разработчика: инициализировать репозиторий → добавить файлы в индекс → зафиксировать снимок → отправить на сервер. Вот шпаргалка из десяти ключевых команд:
Установка зависит от операционной системы. Windows: скачайте установщик на git-scm.com и запустите — вместе с Git устанавливается Git Bash. macOS: введите git —version в терминале — система предложит установить инструменты командной строки; альтернатива: brew install git через Homebrew. Linux (Ubuntu/Debian): sudo apt install git; для CentOS: sudo yum install git.
После установки настройте имя и email: git config —global user.name "Имя" и git config —global user.email "email@example.com". Проверьте результат командой git —version.

Git Bash эмулирует Linux-командную строку на Windows. Устанавливается автоматически вместе с Git для Windows и позволяет запускать все команды так же, как в macOS и Linux — без дополнительных настроек.
Хотите сменить профессию или повысить квалификацию?
Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства
При работе в команде или вкладе в опенсорсный проект используют форки и запросы на слияние. Форк (fork) — независимая копия репозитория, которую можно дорабатывать без влияния на оригинал. Все описанные ниже концепции — стандарт IT-команд любого размера.
Запрос на слияние (Pull Request) — это предложение принять изменения из вашей ветки или форка в основной репозиторий. Workflow: форкнуть проект → внести изменения → открыть Pull Request → пройти код-ревью → слить ветки. Используется и для вклада в опенсорс, и для командной разработки внутри компании.
Git Flow — методология ветвления, предложенная Vincent Driessen. Включает ветки main, develop, feature, release, hotfix — каждая для своего типа задач.
cherry-pick переносит один конкретный коммит из другой ветки: git cherry-pick <хеш>. Удобно, когда нужно взять исправление без слияния всей ветки.
Fast Forward — тип слияния, при котором у целевой ветки нет расходящихся коммитов. Git просто перемещает указатель вперёд без создания коммита слияния — история остаётся линейной.
Git фиксирует полную историю изменений — вы можете вернуться к любой версии без страха потерять работу. Даже в одиночной разработке это страховка: команды git log и git diff позволяют точно определить, когда появилась проблема, и откатиться через git revert.
git pull скачивает изменения из удалённого репозитория и сразу применяет их к текущей ветке. git fetch только загружает обновления, не меняя рабочих файлов — вы сами решаете, когда их интегрировать.
Неотслеживаемые файлы (untracked files) — файлы в рабочей директории, которые Git ещё не отслеживает. Чтобы включить их в следующий коммит, добавьте через git add <имя файла>. После этого файл переходит в статус «staged» и готов к фиксации.
git rebase переносит коммиты ветки на «новое основание», перезаписывая историю, — результат выглядит линейнее. git merge создаёт новый коммит слияния, сохраняя историю обеих веток. Rebase удобен для чистой истории; merge — для прозрачности процесса совместной работы.
Fast Forward — тип слияния, когда у целевой ветки нет расходящихся коммитов. Git просто перемещает указатель ветки вперёд без создания коммита слияния — история остаётся линейной и читаемой.
Расширение для хранения больших двоичных файлов (Git LFS, Large File Storage) нужно для видео, изображений высокого разрешения и датасетов. Стандартный Git плохо справляется с файлами тяжелее 50 МБ: LFS сохраняет в репозитории только указатель, а сам файл — на отдельном хранилище.
Да. Git применяют для документации, векторной графики и конфигурационных файлов. Дизайнеры хранят версии макетов и откатываются к предыдущим итерациям так же, как разработчики — к версиям кода.
GitHub отображает активность через «зелёный ковёр» коммитов — визуальную карту работы за год. Работодатели запрашивают профиль на собеседованиях, чтобы оценить реальный опыт. Активный профиль с вкладом в опенсорсные проекты повышает шансы при трудоустройстве.
Хотите освоить IT-профессию без отрыва от текущей работы? В рамках федерального проекта «Активные меры содействия занятости» нацпроекта «Кадры» доступны программы по системной аналитике, аналитике данных, нейросетям и графическому дизайну — полностью за счёт государства. Смотрите каталог доступных программ.
Подайте заявку —
забронируйте место в группе
45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»