# **Инструкция по работе с Git** ## **Первоначальная настройка Git** При первом запуске необходимо зарегистрироваться в системе. Git связывает вашу личность с каждой сделанной вами фиксацией. * `git config --global user.name` "Name" * `git config --global user.email` user_email@mail.ru ## **Работа с одной веткой** ### Инициализация и отслеживание * `git init` - (initialization) инициализация репозитория, т.е создание хранилища. * `git add ReadMe.md` - добавление файла `ReadMe.md` в Git для отслеживания его изменений. * `git commit -m "message"` - фиксация изменений. `-m` оставить комментарий к изменению. ### Перемещение по ветке * `git log` - журнал изменений. История коммита. Будущие коммиты отображены не будут. * `git checkout 1156gh` - переход к другому коммиту. * `git checkout master` - возвращение к последнему коммиту ветви `master`. Основную ветку чаще всего называют master. ### Полезные команды * `git --version` - версия Git. * `git status` - отображает состояние рабочего каталога и раздела проиндексированных файлов. * `git diff` - (difference) показывает разницу между сохраненным коммитом и текущим файлом. ## **Работа с несколькими ветками** * `git branch branch_name` - команда для добавления новой ветки (branch_name - название добавляемой ветки). * `git checkout branch_name` - команда для перехода между ветками (branch_name - название ветки в которую переходим). * `git branch -d branch_name` - команда для удаления ветки (branch_name - название удаляемой ветки). * `git merge branch_name` - команда для слияния двух веток. Важные моменты при слиянии: 1. В момент слияния мы находимся в ветке, куда будут загружены изменения; 2. branch_name - название ветки, изменение которой будут отправляться. ### Последствия слияния веток. Но бывают случаи когда сливаемые ветки конфликтуют друг с другом. Когда в основной ветке есть противоречие относительно изменений получаемых из побочной ветки. В таких случаях в среде VS Code нам предоставляется возможность реализовать один из следующих вариантов: * `Accept Current Change` - оставить в основной ветке ее версию данных; * `Accept Incoming Change` - заменить данные основной ветки на данные вливаемой ветки; * `Accept Both Changes` - оставить оба варианта для возможности вручную указать итоговые данные. * `Compare Changes` - сравнить изменения. ## **Работа с удаленным репозиторием GitHub**