![Лого GB](https://static.tildacdn.com/tild3138-3133-4132-b963-393333346630/GeekBrains_logo.png) # **Шпаргалка по Git'у** ## **I. Основные команды** - *git init* - Данная команда инициализирует репозиторий. - *git add Имя файла* - Данная команда добавляет файлу версионность (включает режим фиксации версии) в репозитории. - *git status* - Данная команда выводит статус выбранной папки. - *git commit -m"Комментарий"* - Данная команда позволяет зафиксировать изменение и сообщить о появлении новой версии. - *git log* - Данная команда выводит всю историю изменений(список commit'ов) в хронологическом порядке, с указанием номера commit’a, Автора, Даты изменения и Комментарий (к изменению). - *git diff* - Данная команд выводит разницу между текущей и уже зафиксированной версией файла. - *git checkout* - Данная команда дает возможность "перемещаться" между зафиксированными (сохраненными версиями). - *git checkout master* - Данная команда дает возможность "перейти" к основной версии (ветке). ## **II. Работа с ветками** Для просмотра списка существующих веток необходимо вызвать следующую команду: git branch ### II.1) ***Добавление новой ветки*** Для добавления новой ветки испозуется следующая команда ("branch_name" - Название создаваемой ветки): git branch branch_name Команда *git status* позволяет посмотреть текущее состояние, в том числе - название текущей ветки. ### II.2) ***Переход между ветками*** Для перехода между ветками используется следующая команда ("branch_name" - Название ветки, в которую осуществляется переход): git checkout branch_name ### II.3) ***Слияние веток*** Для слияние двух веток применяется следующая команда: git merge branch_name ***Важные моменты при слиянии!*** В момент слияния мы находимся в ветке, куда будет загружены изменения; "branch_name" - название ветки, изменения которой будут отправляться ### II.4) ***Последствия слияния веток*** При слиянии могут возникнуть ситуации, когда в основной ветке есть противоречия относительно изменений, получаемых с побочной ветки. В таких случаях в среде VS Code нам предоставляется возможность реализовать один из следующих вариантов 1. вариант - оставить в основной ветке её версию данных; 2. вариант - заменить данные основной ветки на данные выливаемой ветки; 3. вариант - оставить оба варианта, для возможности вручную указать итоговые данные. ## **III. Работа с удаленными репозиториями** Для работа с удаленными репозиториями необходимо (*через GitHub*): Создать аккаунт на GitHub (github.com) Далее, в зависимости от задачи: 1. Если, требуется создать новый репозиторий на GitHub: а) На странице своего аккаунта в GitHub, в верхнем правом углу, нажав на значок "+", вызываем выпадающий список, из которого выбираем "New repository. b) Далее вводим "Repository name"; c) Если требуется вводим "Description (optional)"; d) Выбираем каким будет репозиторий, Публичным (Public) или Частным (Private); f) Выбрать с помощью чего будите инициализировать данный репозиториий (Initialize this repository with), можно добавить файлы README, .gitignore и Лицензию (которая будет сообщать другим, что они могут и чего не могут делать с вашим кодом.) g) Нажимаем "Create repository" и попадаем на страницу с новым репозиторием. На данной странице можем взять адрес "Code" репозитория на GitHub и залить туда свой локальный репозитории или клонировать новый и начать работать в VS Code. h) Вносим изменения в локальный репозиторий, делаем commit и отправляем на удаленный репозиторий (git push). 2. Если, требуется работать с уже созданым чужим репозиторием на GitHub: а) Заходим на страницу требуемого репозитория (по заранее известному адресу или названию). b) В верхнем правом углу находим кнопку "Fork" и нажимаем на нее (в следствие нажатия GitHub сделает копию данного репозитория в наш аккаунт. c) Далее клонируем скопированный репозитории на свой компьютер (git clone); d) Создаём новую ветку, в которую будем вносить изменения; f) Делаем commit своих изменений; g) Отправляем свою версию на свой репозиторий в GinHub (git push); h) Заходим на своий репозиторий в GitHub и нажимаем Pull requests. i) Если требуется указываем сообщение для владельца репозитория. j) Ожидаем обратной связи. ***!!!Сделав Fork будет возможность делать Pull requests и поучавствовать в выбранном проекте!!! )*** ### ****КОМАНДЫ для работы с удаленным репозиторием**** - **Клонировать репозиторий**, т.е. склонировать внешний репозиторий на наш ПК git clone - **Скачать и сохранить из удаленного репозитория, только те изменения, которых нет в локальном репозиториий** git fetch origin - **Скачать все изменения из удаленного репозитория и сделать merge с локальной версией** git pull git pull = git fetch + git merge - **Отправить нашу версию репозитоия на удаленный репозиторий в GitHub** git push origin - **Отправить ветку branch_name на сервер origin** git push origin branch_name !!! **origin** — имя по умолчанию, которое Git даёт серверу, с которого производилось клонирование!!! * **Управления списком удалённых репозиториев** git remote * Просмотреть адреса для чтения и записи, привязанные к репозиторию git remote -v * Добавить удалённый репозиторий git remote add ## Шпаргалка. Как сделать PULL REQUEST 1. Делаем fork репозитория 2. Делаем clone СВОЕЙ версии репозитория 3. Создаем новую ветку и в НЕЕ вносим свои изменения 4. Фиксируем изменения (делаем коммиты) 5. Отправляем свою версию в свой GitHub 6. На сайте GitHub нажимаем кнопку pull request # END. ~~*Author:* Bill Gates~~ ~~*Corrected and supplemented:* Linus Torvalds~~ **Автор:* Александров Степан Н. (Gr_n RF)*