Ты открыл первый туториал по программированию, и почти сразу там появляется оно — git commit, git push, какие-то ветки, слияния, «закоммить и запушь». Звучит как заклинание, и кажется, что это что-то сложное и опасное: одно неверное движение — и проект развалится. На деле всё наоборот.
Git — это не про «опасно», а про «безопасно». Это машина времени для твоего проекта: любой момент можно сохранить, к любому — вернуться. Сломал что-то? Откатился к рабочей версии. Хочешь попробовать рискованную идею? Сделал это в стороне, не трогая основное. Без git каждое изменение — прыжок без страховки. С git под тобой всегда сетка.
Этот гид — карта. Я объясню все ключевые понятия на пальцах, дам таблицу-шпаргалку с командами, проведу через типичный рабочий цикл и покажу частые грабли, на которые наступают все новички. А по дороге буду давать ссылки на разборы отдельных тем — чтобы ты мог нырнуть глубже там, где захочется.
Что такое git и зачем он вообще нужен
Представь, что ты пишешь курсовую. Сначала появляется файл курсовая.docx. Потом курсовая_финал.docx. Потом курсовая_финал_2.docx, курсовая_финал_точно_последняя.docx и легендарная курсовая_финал_исправленная_правки_научрука.docx. Знакомо? Это ручной, болезненный и ненадёжный способ хранить историю.
Git делает то же самое, но умно и автоматически. Вместо десятка файлов-копий у тебя один проект и аккуратная история: что менялось, когда и зачем. В любой момент можно посмотреть, что было неделю назад, сравнить две версии или вернуться назад, если новая идея оказалась плохой.
Зачем это новичку, который только учится?
- Не страшно экспериментировать. Запорол код? Откатился — и снова рабочая версия. Git убирает страх «а вдруг сломаю».
- Видно, что ты менял. Когда Claude Code или ты сам правите код, git показывает точную разницу — что добавилось, что удалилось.
- Это стандарт индустрии. GitHub, на котором живёт почти весь открытый код мира, построен вокруг git. Научишься — и тебе открыта половина IT.
Шпаргалка: главные команды git
Не нужно зубрить всё. Но эту таблицу удобно держать под рукой первые пару недель. Слева — команда, в центре — что делает по-человечески, справа — когда ты её применяешь.
| Команда | Что делает | Когда применять |
|---|---|---|
git init | Создаёт новый репозиторий в текущей папке | Один раз, в самом начале проекта |
git status | Показывает, что изменилось и что готово к коммиту | Постоянно — это твой «компас» |
git add файл | Добавляет файл в подготовку к коммиту | Перед каждым коммитом |
git add . | Добавляет сразу все изменения | Когда хочешь сохранить всё разом |
git commit -m "текст" | Сохраняет снимок проекта с подписью | Когда закончил осмысленный кусок работы |
git log | Показывает историю коммитов | Чтобы вспомнить, что и когда делал |
git diff | Показывает построчную разницу изменений | Перед коммитом — «что именно я поменял?» |
git branch | Список веток (и какая активна) | Чтобы понять, где ты находишься |
git branch имя | Создаёт новую ветку | Перед началом новой функции или эксперимента |
git checkout имя | Переключается на другую ветку | Когда нужно перейти на другую версию |
git switch имя | То же, но новее и понятнее | Современная замена checkout для веток |
git merge имя | Вливает ветку в текущую | Когда эксперимент удался и пора объединить |
git clone адрес | Скачивает чужой репозиторий к себе | Когда берёшь готовый проект с GitHub |
git pull | Забирает свежие изменения из удалённого репозитория | Перед началом работы, чтобы быть в курсе |
git push | Отправляет твои коммиты в удалённый репозиторий | Когда хочешь сохранить работу «в облако» |
git restore файл | Откатывает изменения в файле к последнему коммиту | Когда напортачил и хочешь как было |
Не пугайся объёма. В реальной жизни 90% времени ты используешь всего пять штук: status, add, commit, push, pull. Остальное — по мере надобности.
Ключевые понятия простыми словами
Прежде чем гонять команды, разберёмся со словами. Их немного, и за каждым стоит очень простая бытовая идея.
Репозиторий
Репозиторий (или просто «репо») — это твой проект под присмотром git. Технически это папка, внутри которой git завёл скрытую подпапку .git и в ней хранит всю историю. Команда git init как раз и говорит: «следи за этой папкой». С этого момента git замечает каждое изменение.
Коммит
Коммит — это сохранённый снимок проекта с подписью. Не просто «сохранил», а «сохранил вот это состояние, и вот зачем». Каждый коммит — точка во времени, к которой можно вернуться. Подпись (это называют «сообщение коммита») вроде «добавил кнопку отправки формы» — твоя заметка будущему себе.
Хороший коммит — как хорошая фотография момента: один осмысленный шаг, понятная подпись. Плохой коммит — свалка из тридцати разных правок под названием «фиксы».
Ветка
Ветка — параллельная версия проекта, где можно делать что угодно, не трогая основную. Главная ветка обычно называется main. Хочешь попробовать новую фичу — заводишь ветку new-feature, ковыряешься там сколько влезет. Получилось — вливаешь обратно в main. Не получилось — просто выбрасываешь ветку, и main даже не узнает о твоих экспериментах.
Представь ветку как черновик на отдельном листе. Основной документ остаётся чистым, пока ты не решишь перенести в него удачные куски.
Слияние (merge)
Слияние — это момент, когда ты объединяешь ветку с основной. Поэкспериментировал в new-feature, всё работает — делаешь git merge, и твои изменения вливаются в main. Git сам аккуратно совмещает оба набора правок.
Удалённый репозиторий
Всё, о чём говорили выше, живёт у тебя на компьютере (это локальный репозиторий). Удалённый репозиторий — копия проекта на сервере, чаще всего на GitHub. Он нужен для двух вещей: бэкап (компьютер сломался — код цел) и совместная работа (другие люди видят твой код). git push отправляет твои коммиты туда, git pull забирает оттуда свежие изменения.
Типичный рабочий цикл: изменил → add → commit → push
Вот ритм, который ты будешь повторять сотни раз. Запомни его как танец из четырёх движений.
1. Изменил. Ты редактируешь код — правишь файл, добавляешь новый, что-то удаляешь. Git это молча замечает.
2. Проверил и добавил (git add). Сначала git status покажет, что поменялось. Потом git add . помечает изменения как «готовые к сохранению». Это как сложить нужные вещи в коробку перед отправкой.
3. Сохранил (git commit). git commit -m "понятное описание" запечатывает коробку и ставит на неё подпись. Теперь это точка в истории, к которой всегда можно вернуться.
4. Отправил (git push). git push отсылает твои коммиты в удалённый репозиторий. Работа в безопасности — даже если с ноутбуком что-то случится.
Вот как это выглядит вживую — до и после:
# ДО: ты просто менял файлы, история не сохранена
$ git status
On branch main
Changes not staged for commit:
modified: index.html
# ПОСЛЕ: добавил, закоммитил, отправил
$ git add .
$ git commit -m "добавил заголовок на главную"
$ git push
Три строчки — и твоя работа зафиксирована навсегда и забэкаплена. Подробный разбор этого ритма с примерами — в посте про рабочий цикл с git глазами Claude Code. А если хочешь увидеть, как коммиты и ветки делаются руками Claude без зубрёжки команд — это отдельная история, и очень приятная.
Что такое diff и как его читать
Diff (от английского difference, «разница») — это построчное сравнение «было/стало». Когда ты или Claude меняете код, git умеет показать ровно, что именно изменилось. Это самый важный навык для понимания происходящего.
Читается diff просто, по цвету и значкам:
- Строки со знаком
-(часто красные) — то, что удалили. - Строки со знаком
+(часто зелёные) — то, что добавили. - Строки без значка — контекст вокруг, он не менялся, просто для ориентира.
Пример:
function greet(name) {
- return "Привет";
+ return "Привет, " + name + "!";
}
Здесь видно: старую строку с простым «Привет» убрали, а вместо неё добавили строку с именем. Никакой магии — просто «было/стало». Когда учишься читать diff, ты перестаёшь слепо доверять изменениям и начинаешь их понимать. Это особенно важно, когда код пишет ИИ: ты смотришь diff и сам решаешь, принять правку или нет. Полный разбор с примерами — в посте как читать diff, очень рекомендую прочитать следом за этим гидом. А привычку просматривать изменения перед коммитом мы разбираем отдельно — в посте про ревью с Claude до коммита.
Как откатиться, если что-то сломал
Это та самая суперсила, ради которой всё затевалось. Запорол код — не паникуй. Git почти всегда даёт путь назад. Вот лесенка от мягкого к жёсткому:
- Отменить правки в одном файле (ещё не коммитил):
git restore файл— вернёт файл к состоянию последнего коммита. Как будто ничего не трогал. - Посмотреть, к чему вообще можно вернуться:
git logпокажет список коммитов с их подписями. Каждый — точка возврата. - Вернуться к старому состоянию: можно переключиться на конкретный коммит и посмотреть, как было. Основная история при этом цела.
Главная мысль: пока ты делаешь коммиты, почти ничего нельзя потерять навсегда. Git хранит все точки. Чем чаще коммитишь — тем больше у тебя страховочных точек и тем спокойнее экспериментировать.
Совет
Коммить часто и маленькими шагами. Сделал один осмысленный кусок — закоммитил. Так история читается как дневник, а откат всегда возвращает тебя на удобную точку, а не на «вчерашний хаос». Правило-памятка: один коммит = одна понятная мысль.
Частые ошибки новичка
Эти грабли разложены на пути каждого. Зная их заранее, ты их обойдёшь.
1. Коммиты-помойки с подписью «фиксы». Ты наменял двадцать разных вещей и закоммитил всё одним махом с сообщением update или фиксы. Через неделю не вспомнишь, что там было. Лечение: коммить маленькими осмысленными шагами и пиши понятные сообщения — «добавил валидацию формы», а не «апдейт».
2. Забыл сделать git pull перед работой. Если над проектом работает кто-то ещё (или ты сам с другого компьютера), начинай день с git pull — забери свежие изменения. Иначе при push получишь конфликт. Лечение: привычка — сначала pull, потом работа.
3. Закоммитил лишнее: пароли, гигантские файлы, мусор. Новички часто коммитят файлы с паролями или кэш-папки на сотни мегабайт. Лечение: заведи файл .gitignore со списком того, что git должен игнорировать (например, папку с зависимостями или файлы с секретами). Один раз настроил — и git их больше не замечает.
4. Паника при конфликте слияния. Когда два человека поменяли одну и ту же строку, git не знает, чью версию взять, и просит тебя решить. Новичков это пугает до дрожи. На самом деле git просто помечает спорное место и ждёт твоего выбора. Лечение: не бойся, читай подсказки git, а если работаешь с Claude Code — попроси его разрулить конфликт и объяснить, что произошло.
Где здесь Claude Code и тренажёр
Хорошая новость: команды git не обязательно держать в голове. Можно сказать словами — «сохрани изменения с понятным описанием», «заведи отдельную ветку под новую функцию», «покажи, что я поменял» — а Claude Code выполнит это правильно и объяснит каждый шаг. Ты учишься понимать суть, а рутину берёт на себя ассистент.
Чтобы потренироваться без риска, в нашем бесплатном курсе есть встроенный тренажёр терминала. Маленькое честное предупреждение: на тренажёре git симулирован — он не подключается к настоящему GitHub и не качает реальные репозитории. Но логика и понятия там настоящие: коммиты, ветки, статус, diff ведут себя так же, как в жизни. Это идеальная песочница, чтобы набить руку и перестать бояться, прежде чем работать с реальным проектом.
Git живёт в терминале, поэтому два навыка хорошо идут в паре. Если командная строка пока кажется тёмным лесом, начни с нашего полного гида по терминалу для новичка — а потом возвращайся к git, и всё ляжет ровнее.
Частые вопросы (FAQ)
В чём разница между git и GitHub? Git — это инструмент (программа), которая хранит историю проекта у тебя на компьютере. GitHub — это сайт-сервис, куда можно выкладывать репозитории, чтобы их видели другие и чтобы был бэкап. Git — двигатель, GitHub — гараж, где машины стоят и которым можно делиться. Можно пользоваться git вообще без GitHub.
Нужно ли мне заучивать все команды наизусть?
Нет. Запомни пять основных — status, add, commit, push, pull — этого хватает на 90% случаев. Остальное подсмотришь в шпаргалке выше или попросишь Claude Code. Понимание понятий важнее, чем зубрёжка синтаксиса.
Можно ли что-то безвозвратно потерять в git? Почти нет — при одном условии: ты делаешь коммиты. Каждый коммит — сохранённая точка, к которой можно вернуться. Потерять можно только то, что ты ещё ни разу не коммитил. Поэтому правило простое: коммить часто.
Что такое ветка main и можно ли работать прямо в ней?
main — это основная, «главная» ветка проекта, его рабочая версия. Технически работать прямо в ней можно, и для учебных мини-проектов это нормально. Но хорошая привычка — новые фичи делать в отдельной ветке и вливать в main, только когда всё работает. Так основная версия всегда остаётся стабильной.
Git перестаёт пугать ровно в тот момент, когда ты понимаешь: это не ловушка, а страховка. Машина времени, которая позволяет смело экспериментировать, потому что назад всегда можно вернуться. Освой коммиты, ветки и привычку коммитить часто — и ты уже владеешь тем, чем пользуется вся IT-индустрия.
Хочешь не просто прочитать, а попробовать руками — в безопасной песочнице, по шагам, с объяснениями?