Если вы работали в основном с Хранилищем конфигурации, то Git можно понять так:
- Хранилище — это одно общее место, куда все складывают изменения.
- Git — это система, где у каждого разработчика есть своя копия истории изменений на компьютере, и есть общий сервер (GitHub/GitLab/Bitbucket).
Это репозиторий у вас на компьютере.
Зачем нужен:
- писать код и сохранять изменения даже без интернета;
- откатываться к старым версиям;
- делать свои промежуточные шаги (коммиты) без влияния на коллег.
Это общий репозиторий на сервере (например, GitHub).
Зачем нужен:
- обмен изменениями между разработчиками;
- резервное хранение истории;
- код-ревью через Pull Request;
- командная работа и контроль качества.
Коротко:
- локальный — рабочее место разработчика;
- облачный — общее место для команды.
Коммит — это сохранённый снимок изменений с комментарием.
Пример: вы исправили ошибку в отчёте и сделали коммит с текстом
Исправил расчет НДС в отчете продаж.
Важно:
- коммиты лучше делать небольшими и понятными;
- по истории коммитов удобно понимать, кто и зачем что менял;
- при проблеме проще найти нужный момент и откатиться.
Отдельный плюс при работе с ИИ-агентом:
- агент обычно хорошо предлагает текст коммита по смыслу изменений;
- но перед подтверждением всё равно полезно быстро прочитать сообщение.
Чтобы проще запомнить, смотрите как на три этапа:
-
modified — «черновик»
- вы изменили файл, но Git ещё не знает, что именно хотите включить в коммит.
-
staged — «подготовлено»
- вы выбрали изменения, которые точно пойдут в следующий коммит.
-
committed — «сохранено»
- изменения уже записаны в историю Git как отдельный шаг.
Короткая цепочка: изменил файл → добавил в stage → сделал commit.
git pull— «забрать» изменения с сервера в локальный репозиторий.git push— «отправить» свои локальные коммиты на сервер.
Простое правило:
- перед началом задачи обычно делают
pull, чтобы работать на свежей версии; - после коммитов делают
push, чтобы изменения увидела команда.
Ветка — это отдельная линия разработки.
Обычно есть:
main(илиmaster) — стабильная основная версия;- рабочие ветки под задачи, например
feature/add-vat-report.
Зачем это нужно:
- можно делать новую задачу, не ломая основную версию;
- несколько человек могут работать параллельно;
- изменения попадают в основную ветку только после проверки.
Аналогия с 1С: ветка — как отдельная копия для доработки, которую потом аккуратно вливают в общую.
Pull Request (PR) — это запрос: «Проверьте мои изменения и влейте их в основную ветку».
В PR обычно:
- описание, что сделано и зачем;
- список коммитов;
- обсуждение и замечания от коллег;
- автоматические проверки (тесты, линтеры, проверки CI).
То есть PR — это не просто техническая кнопка, а этап командной проверки качества.
Merge — это объединение веток.
Пример:
- Вы сделали задачу в своей ветке.
- Открыли PR.
- После проверки PR одобрили.
- Вашу ветку слили (merge) в
main.
После merge изменения становятся частью основной версии проекта.
Конфликт — это ситуация, когда Git не может автоматически понять, какую версию оставить.
Почему возникает чаще всего:
- два человека изменили одни и те же строки;
- вы долго работали в ветке и она сильно разошлась с
main.
Общий принцип решения:
- Git показывает конфликтные файлы.
- Вы вручную выбираете правильный вариант (или объединяете оба).
- Проверяете, что код/логика работает.
- Подтверждаете исправление и завершаете merge.
Важно: конфликт — это нормально, это не «поломка Git», а рабочая часть командной разработки.
Git сам по себе не назначает роли, но в команде обычно есть такие:
-
Разработчик (Author)
- делает изменения;
- создаёт коммиты;
- открывает PR.
-
Ревьюер (Reviewer)
- проверяет PR;
- ищет ошибки и спорные места;
- предлагает улучшения;
- даёт одобрение.
-
Интегратор / мейнтейнер (Maintainer)
- отвечает за целостность основной ветки;
- решает, когда и как мержить изменения;
- следит за правилами репозитория.
Иногда все эти роли может выполнять один человек, в маленькой команде это нормально.
- Забрать свежую версию проекта (
pull). - Создать свою ветку под задачу.
- Внести изменения.
- Сделать один или несколько осмысленных коммитов.
- Отправить ветку в облачный репозиторий (
push). - Открыть PR.
- Пройти ревью и правки.
- Сделать merge в
main.
Такой процесс помогает не терять изменения, не ломать общую версию и прозрачно работать в команде.
Очень полезный подход при работе с агентом или перед рискованными изменениями:
- Сначала сделать «безопасный» коммит текущего состояния.
- Потом запускать агента или делать крупные правки.
- Если что-то пошло не так — вернуться к этому коммиту.
То есть коммит работает как чек-поинт в игре: можно вернуться на сохранение.
Обычно перед экспериментом делают коммит с понятным текстом, например:
checkpoint: перед автоправками агентаcheckpoint: стабильное состояние перед рефакторингом
Важно: такой коммит лучше делать в своей рабочей ветке.
Есть два простых безопасных варианта:
-
Через
git revert(рекомендуется для общей ветки)- создаётся новый коммит, который отменяет неудачные изменения;
- история остаётся прозрачной;
- удобно, если изменения уже ушли в удалённый репозиторий.
-
Через
git reset --hard <commit>(только для локальной, личной работы)- ветка «перематывается» назад к выбранному коммиту;
- все более поздние незакреплённые изменения удаляются;
- удобно, если нужно быстро вернуть локальное состояние.
Практическое правило:
- если сомневаетесь — выбирайте
revert; reset --hardиспользуйте только когда точно понимаете последствия.
- Работают сразу в
main, а не в отдельной ветке. - Делают один очень большой коммит «сразу за всё».
- Забывают сделать
pullперед началом задачи. - Пушат без самопроверки и без PR.
- Пишут непонятные сообщения коммитов вроде
fix,upd,правки. - Пытаются решать конфликт «наугад», не проверив итоговый результат.
Если вы работаете через агент в этом проекте, Git-процесс остаётся тем же, но часть рутины берёт на себя агент:
- помогает формировать понятные коммиты;
- следит за рабочей веткой и аккуратным workflow через PR;
- подсказывает безопасные действия при конфликтах и откатах.
Полезные материалы проекта:
- Общий обзор: README.md
- Базовый workflow: framework/workflows/full-cycle.md
- Оркестрация фаз: framework/workflows/orchestrator.md
- Коммит = сохранённый шаг изменений.
- Ветка = отдельная линия работы.
- PR = запрос на проверку и вливание изменений.
- Merge = объединение веток.
- Локальный репозиторий = ваша рабочая копия.
- Облачный репозиторий = общее место команды.
Если коротко: Git делает командную разработку управляемой и безопасной.