Перейти к содержанию
Innovialabs

Что такое Git и как работает система контроля версий

Основы3 мин

Коротко

Git — это система контроля версий, которая сохраняет историю изменений кода в виде снимков (коммитов), позволяет работать в ветках и безопасно объединять работу нескольких людей.

Что такое Git простыми словами

Git — это программа, которая запоминает каждое сохранённое состояние вашего проекта. Вместо папок «проект_финал», «проект_финал_2» и «проект_точно_финал» у вас одна папка и полная история: кто, когда и что изменил.

Git — распределённая система: у каждого разработчика на компьютере лежит полная копия истории. Можно работать без интернета, а потом синхронизироваться с сервером (GitHub, GitLab, Bitbucket или собственным).

Зачем нужен контроль версий

Без контроля версий команда быстро сталкивается с типичными проблемами:

  • Потеря работы. Кто-то перезаписал файл коллеги, и правки исчезли.
  • Нет отката. Обновление сломало сайт, а вернуться к рабочей версии нечем.
  • Непонятно, откуда баг. Нельзя посмотреть, какое изменение его принесло.
  • Параллельная работа мешает. Два человека правят один модуль и тормозят друг друга.

Git решает всё это: любое состояние можно восстановить, каждое изменение подписано, а параллельная работа идёт в отдельных ветках.

Модель Git: три ключевых понятия

Коммит

Коммит — это снимок всех отслеживаемых файлов проекта в конкретный момент плюс сообщение, автор и дата. У каждого коммита есть уникальный хеш (например, a3f9c21) и ссылка на предыдущий коммит. Так история превращается в цепочку.

Staging area (индекс)

Между вашими файлами и историей есть промежуточная зона — staging area. Вы сами выбираете, какие изменения войдут в следующий коммит. Это позволяет делать аккуратные коммиты: например, отдельно исправление бага и отдельно правку стилей, даже если оба изменения сделаны одновременно.

Файл в Git проходит три состояния:

СостояниеГде находитсяКоманда перехода
Изменён (modified)рабочая папкаредактирование файла
Подготовлен (staged)staging areagit add
Зафиксирован (committed)история репозиторияgit commit

Ветка

Ветка — это просто подвижный указатель на коммит. Основная ветка обычно называется main. Когда вы начинаете новую задачу, создаёте ветку, работаете в ней, а затем объединяете (merge) её с основной. Ветки в Git создаются мгновенно и почти ничего не весят, поэтому их принято делать под каждую задачу.

Первый репозиторий: от init до первого коммита

Сначала установите Git и один раз укажите имя и почту — они будут подписывать ваши коммиты:

git config --global user.name "Ваше Имя"
git config --global user.email "you@example.com"

Теперь создадим проект и первый коммит:

mkdir my-project
cd my-project
git init                      # создаёт скрытую папку .git с историей
echo "# My project" > README.md
git status                    # README.md отображается как неотслеживаемый
git add README.md             # переносим файл в staging area
git commit -m "Add README"    # фиксируем снимок
git log --oneline             # смотрим историю

После git init в папке появляется каталог .git — это и есть репозиторий со всей историей. Удалите его, и проект перестанет быть Git-репозиторием, а файлы останутся.

Чтобы отправить проект на сервер, создайте пустой репозиторий на GitHub или GitLab и выполните:

git remote add origin <адрес-репозитория>
git push -u origin main

Частые ошибки новичков

  • Один огромный коммит в конце дня. Коммитьте небольшими логичными шагами — так проще найти и откатить ошибку.
  • Сообщения вроде «fix» или «update». Пишите, что и зачем изменилось: «Fix price rounding in cart».
  • Пароли и ключи в репозитории. Секреты не должны попадать в историю — используйте .gitignore и переменные окружения.
  • Работа сразу в main. Даже в одиночном проекте ветки помогают держать основную версию рабочей.
  • Путаница Git и GitHub. Git — инструмент, GitHub — сервис для хранения репозиториев и совместной работы.

Частые вопросы

Git — это программа контроля версий, которая работает на вашем компьютере. GitHub, GitLab и Bitbucket — онлайн-сервисы, где хранят Git-репозитории, проводят code review и настраивают CI/CD.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.