# Git для авторов документов ## Зачем он нужен Git хранит последовательность контрольных точек проекта. Он помогает: - увидеть, кто и зачем изменил текст; - вернуться к предыдущей версии; - работать над разделами параллельно; - объединять согласованные изменения; - не пересылать папки `Финал`, `Финал 2`, `Финал точно`. ## Коммит Коммит похож на сохранённую контрольную точку с подписью. В него входят выбранные изменения и короткое объяснение. Хорошие сообщения: - `Добавлена глава о геологическом строении`; - `Уточнены выводы по замечаниям заказчика`; - `Обновлены рисунки раздела 3`. Один коммит должен описывать одну законченную мысль. Перед коммитом желательно собрать PDF. ## Ветка Ветка — параллельная версия проекта. Основной документ остаётся стабильным, пока вы работаете над отдельной главой. Подходящие имена: - `chapter-geology`; - `review-comments`; - `update-figures`. Создание в VS Code: нажмите имя текущей ветки в строке состояния и выберите **Create new branch**. ## Push и Pull - **Push** отправляет ваши коммиты на сервер. - **Pull** получает коммиты коллег. - **Sync Changes** обычно выполняет получение и отправку последовательно. Всегда выполняйте Pull перед началом работы и перед merge. Push нужен не только в конце дня: серверная копия защищает работу при поломке компьютера. ## Merge Merge переносит результат одной ветки в другую. 1. Завершите работу в своей ветке: проверка → commit → push. 2. Переключитесь на целевую ветку, обычно `main`. 3. Выполните Pull. 4. Запустите `Git: Merge Branch` через `Ctrl+Shift+P`. 5. Выберите рабочую ветку. 6. Проверьте PDF, затем Push. ## Конфликт Конфликт означает, что две ветки изменили одно и то же место по-разному. Это не поломка и не потеря данных. VS Code предлагает трёхсторонний редактор: - **Current** — текст целевой ветки; - **Incoming** — текст присоединяемой ветки; - **Result** — итог, который попадёт в документ. Выберите подходящие части или вручную составьте правильный итог. Удалите служебные маркеры конфликта, сохраните файл, соберите PDF, добавьте исправленный файл в staged changes и завершите merge коммитом. Если не уверены в результате, не нажимайте случайные варианты и не удаляйте `.git/`. Обратитесь к коллеге, который сможет увидеть обе исходные версии. ## Git Graph Выполните `Git Graph: View Git Graph`. Кружки показывают коммиты, линии — ветки, соединения — merge. Щёлкните коммит, чтобы посмотреть список и содержание изменений. ## Что нельзя добавлять в Git - `.private/`; - реальные подписи и печати; - сгенерированные `document.pdf` и `example.pdf`; - временные файлы редакторов. ## Официальные инструкции - [Быстрый старт Git в VS Code](https://code.visualstudio.com/docs/sourcecontrol/quickstart) - [Source Control в VS Code](https://code.visualstudio.com/docs/sourcecontrol/overview) - [Ветки и merge](https://code.visualstudio.com/docs/sourcecontrol/branches-worktrees) - [Разрешение конфликтов](https://code.visualstudio.com/docs/sourcecontrol/merge-conflicts) - [Pro Git на русском](https://git-scm.com/book/ru/v2)