diff --git a/Kosachev.md b/Kosachev.md new file mode 100644 index 0000000..fc7222a --- /dev/null +++ b/Kosachev.md @@ -0,0 +1,86 @@ +# **Инструкция по работе с 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** + +### Как взять чей-то репозиторий с GitHub + +1. Создаем папку для репозитория у себя на компьютере. +2. Копируем HTTPS ссылку c GitHub интересующего нас проекта. +3. Открываем созданную папку в VS Сode. +4. В терминале выполняем команду: `git clone ` +5. В скачанный репозиторий переходим командой: cd <название репозитория> +6. Репозиторий готов к работе с ним. + +### Как загрузить свой репозиторий на GitHub + +1. Создать аккаунт на GitHub.com +2. Создать локальный репозиторий +3. "Подружить" ваш локальный и удаленный репозитории. GitHub при создании нового репозитория подскажет как это можно сделать. +4. Отправить `(push)` ваш локальный репозиторий в удаленный (на GitHub), при этом вам, возможно, нужно будет авторизоваться на удаленном репозитории. +5. Провести изменения "с другого компьютера". +6. Выкачать `(pull)` актуальное состояние из удаленного репозитория. + +### Как принять участие в разработке + +1. Делаем форк `(fork)` интересующего нас репозитория. +2. Мы делаем git clone для нашей версии этого репозитория. +3. Мы создаем ветку с предлагаемыми изменениями. +4. Производим изменения только в одной ветке. +5. Отправляем эти изменения на свой аккаунт (push). +6. В окне на GitHub появляется возможность отправить pull request. +___ \ No newline at end of file