В этой статье вы разберётесь, что такое Git и зачем он нужен, создадите свой первый репозиторий на GitHub и настроите рабочее окружение. Мы намеренно разбираем работу с Git через графический интерфейс IDE - так нагляднее и спокойнее на старте, не нужно держать в голове десятки команд.

Примеры и снимки интерфейса относятся к IDE JetBrains; названия и расположение действий могут отличаться в вашей версии. Для упражнений используйте отдельный учебный репозиторий. В рабочем проекте следуйте его правилам веток, фиксации и отправки изменений.

Но у такого подхода есть и второй смысл. Claude Code под капотом делает ровно те же операции с Git - только командами в консоли. Когда он предлагает сделать коммит, создать ветку или отправить изменения, за этим стоят обычные команды Git. Понимая, что происходит за кнопками IDE, вы будете понимать и то, что предлагает Claude Code, и сможете осознанно это проверить и одобрить.

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

Когда вы начинаете работать над проектом, кажется, что главное - чтобы код работал. Но довольно быстро выясняется, что код меняется чаще, чем работает стабильно. Вы исправляете баг, добавляете фичу, передумываете, откатываете, снова добавляете.

Представьте, что вы работаете над своим проектом. Всё идёт хорошо, пока не наступает момент экспериментов. Вы решаете что-то поменять, но боитесь сломать рабочую версию. Что делать? Конечно, копировать проект. В итоге на диске появляются такие шедевры:

MyProject/
├── main.py
├── main_backup.py
├── main_final.py
├── main_final2.py
├── main_really_final.py
├── main_really1_really_final2.py

Знакомо? А теперь представьте, что к проекту подключился ещё друг. Он тоже любит копировать файлы - только по-своему. Как понять, где самая свежая и рабочая версия? Как узнать, кто что поменял? Как вернуть всё, если эксперимент не удался?

Без сохранённой истории приходится вручную разбираться в копиях файлов:

  • легко потерять или перепутать рабочий код;
  • нет единого способа найти и восстановить сохранённую версию;
  • сложно работать вдвоём или втроём;
  • хаос и страх перед экспериментами.
Иллюстрация к разделу "Зачем нужен контроль версий"

Именно эти проблемы решают системы контроля версий - такие как Git.

Видео - основы Git в терминале

Это видео даёт мощную базу по работе с Git через терминал - оно помогает понять саму механику процессов, скрытых за кнопками IDE.

В видео примеры на Java, но основные операции Git одинаковы для разных языков.

Открыть видео об основах Git

Зеркало на Vimeo: лекция по Git.

Что такое Git - основные понятия

Git - это система управления версиями, которую используют, чтобы отслеживать изменения в коде во время разработки. Она позволяет сохранять разные версии файлов и координировать работу нескольких человек над общим проектом.

Репозиторий (или "репо") - это место, где хранится вся история проекта: все изменения и версии файлов.

Коммит (commit) - сохранённый снимок отслеживаемого содержимого проекта с сообщением, сведениями об авторе и связями с родительскими коммитами. Незакоммиченные и игнорируемые файлы в этот снимок не входят. История позволяет найти и восстановить ранее сохранённую версию.

Последовательные снимки в историиABCD
Последовательные снимки в истории

Каждый коммит - это снимок проекта, который следует за предыдущим, формируя последовательную историю изменений.

Ветка (branch) - имя, указывающее на текущий коммит одной линии разработки. В примерах основная ветка называется main; в вашем репозитории имя может быть другим. Оно зависит от настроек и способа создания репозитория.

Верхняя линия - main, нижняя - develop. После слияния main указывает на M, у которого два родителя: E и D.ABEMCD
Верхняя линия - main, нижняя - develop. После слияния main указывает на M, у которого два родителя: E и D.

От основной ветки main отпочковывается ветка develop для параллельной разработки. После завершения работы изменения из develop сливаются обратно в main.

Основные команды Git - что происходит под капотом

Ниже - список основных команд для работы с Git через терминал. Мы будем работать через графический интерфейс IDE, но полезно понимать, какие команды лежат в основе всех операций: именно их выполняет Git за каждой кнопкой - и именно их выполняет Claude Code, когда работает с вашим репозиторием. Смотрите на них как на то, что происходит под капотом.

КомандаЧто делает
git initинициализирует новый Git-репозиторий в текущей папке
git cloneкопирует репозиторий по URL в новую папку
git statusпоказывает, какие файлы изменены, подготовлены и какие Git пока не отслеживает
git addдобавляет файлы в индекс (staging) для следующего коммита
git commitфиксирует подготовленные изменения как новый снимок истории
git pushотправляет коммиты из локального репозитория в удалённый
git pullполучает изменения и объединяет их с текущей веткой согласно настройкам
git fetchскачивает изменения с сервера, но пока не вливает их в вашу ветку
git branchпоказывает, создаёт или удаляет ветки
git checkout / git switchswitch переключает ветки; checkout также умеет открывать отдельный коммит и восстанавливать файлы
git mergeсливает изменения указанной ветки в текущую
git logпоказывает историю коммитов
git diffбез флагов сравнивает рабочие файлы с индексом; подготовленные изменения смотрят отдельно
git restoreвосстанавливает выбранные файлы; без указания источника рабочие файлы берутся из индекса, а не обязательно из последнего коммита
git resetменяет индекс или положение текущей ветки; последствия зависят от формы команды и режима
git stashвременно прячет незавершённые изменения, чтобы вернуться к ним позже
git remote -vпоказывает, к каким удалённым репозиториям подключён проект
git configнастройки Git, например имя и email автора коммитов
Иллюстрация к разделу "Основные команды Git - что происходит под капотом"

Не нужно заучивать весь список - на старте достаточно понимать, что действия IDE и агента опираются на операции Git; одно действие интерфейса может выполнить несколько команд. Например, фиксация через Commit использует git commit, кнопка Push - это git push.

  • Рабочие файлы
  • git add → индекс
  • git commit → история
  • git push → сервер

На схеме показана отправка: вы готовите содержимое через add, фиксируете его локально через commit и отправляете коммиты через push. Обратное направление, pull, получает удалённые коммиты и объединяет их с текущей веткой по настройкам.

Связь с Claude Code

Это та самая механика, которую Claude Code выполняет за вас. Когда он говорит, что сделает коммит и отправит изменения, под этим - git add, git commit и git push. Вы видите результат в том же окне IDE и можете его проверить.

Четыре состояния кода

Когда вы пользуетесь контролем версий, ваш код логически проходит через четыре состояния:

1. Рабочая директория (Working Directory). Актуальные файлы проекта на вашем компьютере, которые вы прямо сейчас редактируете.

2. Область индексации (Staging Area). Подготовленное содержимое следующего коммита. В JetBrains можно работать через списки изменений либо включить отдельный staging-режим. Галочки в обычном окне Commit выбирают содержимое для коммита, но не означают, что оно уже находится в индексе Git.

3. Локальный репозиторий (Local Repository). Ваша персональная копия истории кода на компьютере. Здесь можно делать коммиты, ветки и слияния даже без интернета.

4. Удалённый репозиторий (Remote Repository). Центральное хранилище кода на сервисах вроде GitHub, GitLab или Bitbucket. Оно надёжно хранит код и служит основой для командной работы.

Связь с Claude Code

Когда Claude Code просит добавить новый файл в отслеживание, он переводит файл из рабочей директории в staging - это команда git add. Так подготавливается содержимое файла на момент добавления; последующие правки нужно подготовить заново. Если файл добавлять не нужно (например, это временный мусор), вы можете не соглашаться.

Git и GitHub - в чём разница

Важно чётко разделять два понятия. Git - это программа, которая работает на вашем компьютере локально (даже без интернета) и следит за версиями файлов. GitHub - это облачный сервис (сайт), где хранятся удалённые копии ваших Git-репозиториев.

GitHub даёт создавать репозитории, отслеживать изменения и работать над кодом вместе с другими. Для современного разработчика профиль на GitHub - важная часть портфолио, которую можно показать работодателю.

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

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

Шаг 1. Зайдите на https://github.com и зарегистрируйтесь.

Шаг 2. Нажмите кнопку New repository для создания нового репозитория.

Кнопка New repository

Шаг 3. Задайте параметры репозитория:

  1. имя репозитория - придумайте осмысленное имя;
  2. Public или Private - выберите видимость осознанно. Public доступен всем; Private ограничивает доступ. Для личного упражнения, которое вы не собираетесь публиковать, можно выбрать Private.
  3. Add a README file - для нового пустого проекта удобно добавить README. Если собираетесь отправлять уже существующую локальную историю, создайте пустой удалённый репозиторий без README, чтобы не получать две независимые начальные истории.
  4. Add .gitignore - выберите шаблон под технологию вашего проекта. В выпадающем списке есть готовые шаблоны под популярные языки. Это важно: сборка и менеджеры пакетов создают много временных файлов и кэша, которые не должны засорять репозиторий, и шаблон поможет Git их игнорировать;
  5. Choose a license - можно пропустить;
  6. нажмите Create repository.
Иллюстрация к разделу "Создание первого репозитория на GitHub"

Шаг 4. Готово, ваш первый удалённый репозиторий создан.

Готовый репозиторий на GitHub

Установка и настройка Git

Дальше показан интерфейс IntelliJ IDEA. В других IDE JetBrains доступны похожие операции, но положение кнопок и названия пунктов зависят от версии. Ориентируйтесь на название действия; его можно найти через поиск действий IDE.

Чтобы работать с Git, его сначала нужно установить. Если вы используете IDE от JetBrains, она, скорее всего, сама предложит установить Git, если не найдёт его в системе - проще всего согласиться.

Закройте текущий проект через File | Close Project. На стартовом экране (Welcome Screen) нажмите Clone Repository (в некоторых версиях кнопка называется Get from VCS).

Стартовое окно IntelliJ IDEA

Если хотите установить Git вручную, скачайте его с официального сайта: https://git-scm.com/downloads.

Важный нюанс

При первом коммите Git нужны имя автора и email. Это подпись коммита, а не вход в аккаунт. Для связи с GitHub используйте подтверждённый адрес из настроек аккаунта или выданный GitHub адрес noreply, если не хотите публиковать личный email.

GitHub связывает коммиты с профилем по email. Само совпадение адреса не гарантирует появление записи в графике активности: у него есть дополнительные условия.

Что установить, чтобы Claude Code работал с Git и GitHub напрямую

Для локальных коммитов и веток достаточно установленного Git: вход в GitHub не нужен. Для операций с удалённым репозиторием настройте доступ к нему. GitHub CLI (gh) - дополнительный инструмент для PR и других функций GitHub, а не обязательная часть Git.

1. Git. Нужен для работы с локальной историей. Установите его через IDE или с официального сайта Git.

2. GitHub CLI (gh) - официальная консольная утилита GitHub. Зачем она нужна: через неё Claude Code может создавать pull request, читать issues и смотреть статусы проверок прямо из терминала, не переключаясь в браузер. Способ установки зависит от вашей операционной системы.

Инструкции для вашей ОС приведены на официальной странице GitHub CLI. Установите утилиту и проверьте её доступность командой gh --version.

Если выбрали GitHub CLI, запустите настройку доступа и следуйте её вопросам. Для GitHub.com можно выбрать HTTPS и вход через браузер:

# вход в аккаунт GitHub из терминала
gh auth login

Claude Code может использовать git для истории и gh для функций GitHub. Установка gh и gh auth login нужны, если вы выбираете этот способ работы с GitHub. Создание PR и отправка коммитов выполняются по вашей задаче, после проверки того, что будет отправлено.

main vs master

В репозиториях встречаются имена main и master. GitHub обычно предлагает main, а Git при локальной инициализации учитывает свою версию и настройку init.defaultBranch. Проверяйте настоящее имя ветки в проекте.

Оба имени обозначают обычную ветку. Команды из примеров нужно соотносить с настоящими именами веток вашего репозитория.

Как это работает в связке с Claude Code

Теперь, когда вы понимаете базовые понятия Git, проще читать действия Claude Code. Вот что он делает с этой технологией за вас и на что стоит смотреть:

  • выполняет за вас git add, git commit, git push и другие команды - те самые, что стоят за кнопками IDE;
  • предлагает добавить файл в отслеживание (git add) - вы решаете, нужен этот файл в истории или нет;
  • предлагает коммит с готовым сообщением - вы читаете, что он зафиксирует, и соглашаетесь или правите;
  • через GitHub CLI умеет создавать и комментировать pull request (PR - предложение влить ветку в основную) и смотреть статусы проверок.
Связь с Claude Code

Перед тем как согласиться, смотрите, какие файлы и изменения попадут в коммит. Claude Code показывает их так же, как IDE, - в виде diff. Это ваша точка контроля: вы всегда понимаете, что именно уйдёт в историю проекта и на сервер.

Следующая статья: Ежедневная работа с Git