$ sudo teach IT

Сегодня мы сделаем первый шаг в реальной работе с Git: создадим собственный репозиторий и узнаем, что такое коммит. Представьте процесс разработки как прохождение игры. Каждый раз, когда вы достигаете важного этапа, вы сохраняете прогресс, чтобы потом можно было вернуться в точку сохранения. В Git эту роль выполняют коммиты.

К концу урока вы научитесь инициализировать репозиторий, добавлять изменения в область подготовки и фиксировать их в истории проекта. А главное — поймёте, почему коммиты так важны для индивидуальной и командной работы.

Что вы узнаете в рамках урока

  • что такое репозиторий Git и зачем он нужен;
  • что такое коммит и область подготовки;
  • как создать репозиторий и проверить его структуру;
  • как использовать команды git add, git commit, git status и git log;
  • какие ошибки чаще всего совершают новички при работе с коммитами.

Ключевые термины

  • Git-репозиторий — место хранения файлов проекта и всей истории изменений.
  • Коммит — снимок изменений, зафиксированный в репозитории.
  • Область подготовки (staging area) — промежуточная зона, где выбирается, какие изменения попадут в следующий коммит.
  • git add — команда для добавления изменений в область подготовки.
  • git commit — команда для создания коммита.
  • git status — команда для проверки текущего состояния проекта.
  • git log — команда для просмотра истории коммитов.

Что такое коммит

Коммит в Git — это основная единица истории проекта. Он фиксирует текущее состояние файлов и превращает его в контрольную точку, к которой можно вернуться в любой момент.

Коммит как «сохранение прогресса»

Представьте, что вы играете в видеоигру. Каждый раз, когда вы проходите уровень или находите редкий предмет, вы нажимаете «сохранить». В случае ошибки или поражения вы можете загрузить игру с этого места.

С коммитами в Git происходит то же самое: вы «сохраняете» состояние проекта, и если что-то пошло не так, можно откатиться к предыдущему состоянию.

Коммит как «фотография альбома»

Можно сравнить коммиты и с фотоальбомом. Каждый снимок фиксирует определённый момент времени: вот мы на море, вот первый день в школе, вот выпускной. Перелистывая альбом, вы восстанавливаете всю историю.

Коммиты выполняют ту же функцию: каждый из них хранит состояние файлов в определённый момент, и вместе они образуют «альбом истории проекта».

Коммит как «страница рабочего дневника»

Ещё одна полезная аналогия — дневник исследователя или инженера. На каждой странице записываются, какие действия были выполнены, что изменилось и какой результат получился. Если нужно вернуться назад и разобраться, где произошла ошибка, достаточно открыть нужную страницу.

Зачем нужны коммиты

  1. Отслеживание эволюции проекта. Коммиты создают понятную цепочку развития. Вы можете увидеть, как постепенно проект менялся: что добавлялось, что исправлялось, что удалялось.
  2. Прозрачность в команде. Каждый коммит содержит имя автора и сообщение с описанием изменений. Это позволяет понять, кто и зачем сделал правку.
  3. Возможность отката. Если новая версия кода оказалась нестабильной, вы можете «отмотать» проект назад — к любому из коммитов. Это даёт уверенность экспериментировать без страха всё сломать.

Создание репозитория

Чтобы Git начал отслеживать изменения, обычную папку с файлами нужно превратить в репозиторий. Репозиторий — это сердце проекта, именно в нём хранится история версий, коммиты и служебные данные.

Первый шаг: перейти в папку проекта

Допустим, у вас есть папка my_project, где лежат файлы будущего сайта или программы. Чтобы работать с ней через Git, нужно открыть терминал и перейти в эту папку:

cd my_project

Теперь все команды будут выполняться именно в этом каталоге.

Второй шаг: инициализация репозитория

Команда:

git init

С её помощью Git создаёт в вашей папке специальную скрытую директорию .git. Она содержит всё, что нужно системе для работы: историю изменений, ссылки на ветки, конфигурацию и объекты.

Можно сказать, что .git — это «чёрный ящик» проекта. Мы не открываем его напрямую и не редактируем руками. Всё взаимодействие идёт через команды Git.

Что именно создаётся внутри

После git init появляется структура, о которой важно знать хотя бы в общих чертах:

  • HEAD — указывает на текущую ветку проекта.
  • config — хранит настройки именно этого репозитория.
  • objects/ — содержит все зафиксированные данные (коммиты, деревья, файлы).
  • refs/ — ссылки на ветки и теги.

Даже если папка выглядит пустой, в .git уже заложена основа для всей будущей истории.

Почему важен именно этот шаг

До выполнения git init папка ничем не отличается от обычной директории на компьютере. После него она превращается в полноценный объект управления версиями: теперь каждое изменение можно зафиксировать и сохранить в истории.

Именно поэтому рекомендуется создавать репозиторий с самого начала работы над проектом — так вы не потеряете важные шаги в разработке.

Добавление изменений в индекс

После того как файлы изменены, нужно указать Git, что именно пойдёт в следующий коммит. Для этого используется команда:

git add <имя_файла>

или

git add .

Чтобы проверить текущее состояние, используется команда:

git status

Она покажет, какие файлы изменены и какие уже подготовлены для коммита.

Создание коммита

Чтобы зафиксировать изменения, используем команду:

git commit -m "Краткое описание изменений"

Сообщение коммита играет важную роль: оно помогает вам и команде быстро понять, что именно изменилось.

Просмотр истории

Чтобы увидеть все сделанные коммиты, используется команда:

git log

Она показывает список коммитов с хешем, автором, датой и сообщением.

Наиболее частые ошибки

  • Непонятные сообщения коммитов.
    Писать «финал», «исправления» или «123» — плохая практика. Лучше «исправлен баг с кнопкой отправки формы».
  • Слишком большие коммиты.
    Если вы включаете в один коммит десятки несвязанных изменений, потом трудно понять, что именно было сделано. Лучше делать маленькие и логичные шаги.
  • Слепое использование git add ..
    Иногда это приводит к добавлению ненужных файлов (например, временных). Лучше избирательно добавлять только нужное.
  • Игнорирование git status.
    Новички часто забывают проверять состояние перед коммитом и случайно фиксируют не те изменения.

Наиболее частые вопросы

  • Зачем нужна область подготовки?
    Она позволяет выбрать, какие именно изменения попадут в коммит, а какие нет.
  • Можно ли изменить сообщение коммита?
    Да, командой git commit --amend. Но менять уже отправленные коммиты не рекомендуется.
  • Что такое сообщение коммита и почему оно важно?
    Это короткое описание изменений. Оно помогает команде быстро понять контекст работы.

Итоги

В этом уроке мы:

  • узнали, что такое коммит и почему он важен;
  • научились создавать репозиторий с помощью git init;
  • освоили команды git add, git commit, git status и git log;
  • разобрали ошибки и вопросы, которые чаще всего возникают у новичков.

Теперь у вас есть базовые навыки работы с Git-репозиторием и понимание, как фиксировать изменения. Следующий шаг — освоить работу с ветками и научиться параллельно развивать проект.

На следующий урок