Как работать с Git
Представь: рабочий день начался. У тебя есть проект с файлами, и нужно выполнить задачу (добавить новую функцию, исправить ошибку и так далее). И, конечно, хочется вести проект под контролем версий.
В результате появятся новые файлы, а часть существующих файлов будет изменена или удалена. Рабочее дерево (working tree) проекта изменится.
Кстати, в терминологии Git это означает файлы проекта. Давай уделим минутку, чтобы разобраться.
(оно же — рабочая директория (working directory)) — это реальный набор файлов твоего проекта в их текущем состоянии. Это та версия проекта, которую ты видишь перед собой и с которой работаешь. Когда кто-то говорит об изменениях в рабочем дереве, имеются в виду правки, которые внесены в файлы, но ещё не сохранены в Git. Это могут быть новые файлы, изменения или удаления.
Итак, работа над проектом идёт, и в рабочем дереве появились изменения. Настало время сохранить прогресс. Но перед этим нужно просмотреть все правки и решить, какие из них мы хотим оставить.
На этом этапе Git может показать, какие файлы изменились и какие строки в них были добавлены, удалены или отредактированы. Ты можешь просмотреть эти правки, добавить нужные в область подготовки (staging area) и отбросить ненужные.
— это кратковременная память Git. Здесь записывается, какие изменения выбраны для следующего снимка проекта (в терминах Git это называется коммитом, но о нём чуть позже).
Представь: весь день ушёл на масштабную доработку проекта, всё готово, и теперь хочется навсегда сохранить эти правки в истории. Нужно создать — снимок текущего состояния файлов. Как только коммит создан, он становится частью истории проекта, и его уже не так-то просто изменить или удалить.
Но перед созданием коммита нужно решить, какие именно изменения в него войдут. Чаще всего мы добавляем все внесённые правки. Но иногда их лучше разбить на несколько коммитов, чтобы история проекта оставалась аккуратной и понятной. Тогда добавляешь в область подготовки только часть правок, коммитишь их, а потом повторяешь то же самое с оставшимися.
Аналогия: допустим, машину помыли, а заодно долили омывайку. Это два независимых действия, поэтому лучше закоммитить их по отдельности. Иначе в истории изменений бачка омывателя появится запись «Мойка машины», что не совсем соответствует реальности и может запутать того, кто потом будет читать эту историю.
Когда нужные правки выбраны и подготовлены, остаётся только создать сам коммит. Вместе с коммитом можно оставить описание, которое объяснит, что именно изменилось и зачем. Это сильно упростит жизнь всем, кто потом будет просматривать историю проекта. После создания коммита изменения навсегда сохраняются в репозитории Git (ещё один термин Git: место, где хранится история проекта).
— это долговременная память Git. Каждый созданный коммит становится частью репозитория.
Одни коммиты могут относиться к основной истории проекта, другие — к экспериментальным веткам, третьи вообще окажутся временными, и мы их потом удалим. Коммит может быть крошечным (например, исправление опечатки в одной строке кода) или огромным (добавление новой функции с сотнями изменённых файлов).
Репозиторий хранится в директории .git в корне проекта. Учти, что по умолчанию эта папка скрыта. Если её повредить или удалить, локальный репозиторий Git будет сломан.
На этом можно остановиться и работать с полноценной локальной историей проекта, но отправка изменений в удалённый репозиторий и получение изменений из него — пуш (push) и пул (pull) — это стандартный следующий шаг.
При работе в команде именно так ты делишься своими правками с остальными и получаешь их обновления. Твои новые коммиты загружаются в удалённый репозиторий, а оттуда скачиваются все коммиты, которые коллеги успели запушить с момента последней синхронизации.
Даже если ты работаешь в одиночку, это всё равно полезно: если что-то случится с компьютером, работа не пропадёт. Плюс, к проекту можно будет получить доступ с любого устройства. А ещё можно поделиться кодом с другими, выдав им доступ к удалённому репозиторию.
-
Вернись к Шагу 2, если есть ещё какой-то готовый код, который нужно сохранить в истории проекта. Добавь в область подготовки и закоммить новые изменения. При необходимости можно также отбросить оставшиеся правки, не добавленные в область подготовки.
-
Вернись к Шагу 1, если хочешь продолжить работу над проектом и внести новые изменения в рабочее дерево.
Поначалу всё это может казаться немного запутанным, особенно если тебе раньше не приходилось работать с системами контроля версий. Но со временем этот процесс становится естественным, и в какой-то момент большую часть действий ты начнёшь делать почти на автомате.
Пройди курс так, как задумано: порционное обучение, чёткий порядок и постепенное открытие статей в Gitопедии. В любой момент можно продолжить работу с настоящим Git прямо в VS Code, Cursor, Antigravity или Windsurf.
(требуется войти в аккаунт)