## Шпаргалка для git-а ### Часть первая ### *Основные команды git-а* * _git --version_ -команда проверяет установлен ли git и его текущую версию. * _git init_ -команда создаст репозиторий внутри папки. * _git add (file.md)_ -команда начнет следить за изменениями внутри файла. * _git commit -m "coment"_ -команда сохраняет изменения, с коментариями об изменениях. * _git status_ -команда позволяет увидеть текущее состояние папки. * _git log_ -команда позволяет посмотреть текущую версию файла. * _git checkout (nomber commit)_ -команда показывает состояние файла включая данный commit. * _git cheсkout master_ -комана возвращает программу git к последнему изменению. * _git diff (commit 1 and commit 2)_ -команда показывает разницу между двумя сравниваемыми commit-ами. * _git branch_ - команда показывает наличие всех веток и указывает на какой ветке сейчас мы находимся. * _git branch (name)_ - команда создания новой ветки. * _git checkout (name)_ -команда перехода на нужную ветку. * _git merge branch (name)_ -команда слияния двух веток. Причем, мы должны находиться в ветке в которую вливается указанная ветка. * _git branch --d branch (name)_ -команда удаления ветки. * _.gitignor (name file)_ -команда предписывает не обращать внимание на данный файл, находящийся в нашй папке. * _git log --graph_ -команда позволяющая увидеть дерево commit-ов и их принадлежность к веткам. ### Часть вторая ### _Работа с ветками_ ### 1. Добавление новой ветки. * Для добавления новой ветки используется следующая команда: _git branch (name)_ * Убедится, что новая ветка добавлена можно с помощью команды: _git branch_ ### 2. Переход между ветками. * Для перехода на нужную ветку используется команда: _git checkout (name), где (name) - имя ветки на которую мы хотим перейти. ### 3. Слияние веток. * Для слияния двух веток используется команда: _git merge (name)_, где (name) имя ветки из которй добавляется информация. **ВАЖНО** - в момент слияния мы должны находиться на ветке в которую добавляется информация. Для определения на какой ветке мы сейчас находимся используется команда: _git branch_. ### 4. Удаление веток. * Для удаления ветки используется команда: _git branch -d (name)_, где (name) имя удаляемой программы. **ВАЖНО** - при удалении ветки необходимо убедтся, что вся информация из нее - сохранена и ветка нам больше не потребуется. ### 5. Конфликты при слиянии веток и их разрешение. * При слиянии двух веток можен возникнуть конфликтная ситуация, когда текущая информация в ветке, в которую добавляют информацию, изменилась по сравнению с той, которая была при создании ветки. git - укажен на эти отличия и предложит 3 варианта решения. 1. принять старую версию; 2.принять новую версию; 3.принять совмещенную версию(учесть все изменения). ### 6. Визуализация дерева веток. * Для визуального просмотра дерева веток (можно увидеть какие ветки были созданы и какие коммиты в них были реализованы, а также можно увидеть слияние веток) используется команда _git log --graph_. ### Часть третья ### _Схема создания конфликта_ * Создаем новую ветку. * Переходим на новую ветку. * Создаем коммит на новой ветке. * Переходим на ветку мастер. * Создаем коммит на ветке мастер. * Вливаем новую ветку в ветку мастер. ### _Должен возникнуть конфликт!_ ## Часть четвертая ### _Работа с удаленным репозиторием_ ### 1. Создание удаленного репозитория * Скачиваем сервис GitHab по ссылке githab.com * Создаем аккаунт на сервисе GitHab * В иконке new repozitory вводим название нашего нового удаленного депозитория * Для работы необходимо связать наш удаленный репозиторий и наш локальный репозиторий, для этого после создания удалнного репозитория необходимо в локальном репозитории выполнить один из трех шагов предложенных сервисом GitHab. На пример: _git remote add origin()_ _git branch -M main_ _git рush -u origin main_ ## ВФжно: При первой команде push сервис GitHab попросит пройти авторизацию. по указанному пути. ### 2. Извлечение информации из удаленного репозитория * Для ознакомления с информацией какого нибудь удаленного депозитория необходимо выбрать этот депозиторий или ввести ссылку, затем нажать иконку Code и скопировать адрес этого репозитория. Затем перейти в терминал VScode и с помощью команды git clone (скопированный адес) скопировать папку чужго удаленного репозитория.. * Для перехода в скоченную папку необходимо выполнить команду cd (указать название папки). * Для перемещения информации из своего удаленного репозитория в свой локальный репозиторий используется команда git pull. ### 3. Перемещение информации в удаленный репозиторий * Для перемещения информации из нашего локального репозитория в наш удаленный репозиторий используется команда git push ### 4. Работа с чужими репозиториями * Для работы с чужим удаленным репозиторием необходимо сделать актуальную копию и сязать ее со своим удаленным репозиторием. это делается с помощью нажатия на иконку Fork. Затем нажав нв иконку Code копируем адрес нашего удаленного репозитория с копиее чужого. * Затем с помощью команды git clone (скопированный адрес удаленного репозитория) копирум чужую копию свой локальный репозиторий. * Затем с помощью команды cd (имя папки скопированного чужого репозитория), переходом в папку скопированного репозитория. * Создае свой файл в скопированной папке, создаем новую ветку и начинаем работать в созданной папке. * Все изменения созданные на новой ветке коммитим и с помощью команды git push отправляем на наш удаленный репозиторий. * Зате с помощью нажатия на иконку Compare & pull request направляем свои изменени хозяину чужого репозитория для рассмотрения * GitHab автоматически проверяет ветку чужого репозитория и нашу ветку, которую мы хотим влить на предмет конфликтов. * После создания комертария об наших иьенения с помощью нажатия на иконку Create pull request отправляем нашши изменения хзяину чужого репозитория