# ГАЙД ПО РАБОТЕ С GIT > [Скачать GIT](https://git-scm.com/download) ## Первоначальная настройка: > Выполняется только один раз ```cmd= git config --global user.name "*Имя*" git config --global user.email "*Почта*" ``` ## Работа с репозиторием: **Все действия выполняются в корневой папке репозитория** ### Создание репозитория: ```cmd= git init ``` ### Скачать существующий репозиторий: ```cmd= git clone *ссылка* ``` **Например** ```bash= git clone https://github.com/novagc/prog_hw.git ``` ### Как получить ссылку на репозиторий GitHub ![](https://i.imgur.com/YjobwnN.jpg) ### Создание коммита: ```cmd= git status # проверить, есть ли незакомиченные изменения git add *имя файла или . (все файлы)* # добавить в кеш git commit -m "комментарий" # закоммитить файлы, добавленные в кеш ``` ### Загрузка коммитов на удалённый репозиторий: > загружаются ВСЕ сделанные ранее коммиты (кроме тех, что уже загружены) ```cmd= git push ``` ### Загрузка изменений с удалённого репозитория: ```cmd= git fetch # скачивает изменения с удалённого репозитория git merge *название ветки* # объединяет скачанные изменения ветки удалённого репозитория и активную ветку ``` #### Или ```cmd= git pull [--rebase] # скачивает изменения с удалённого репозитория и автоматически пытается их объединить ``` ### Ветки: ```cmd= git branch # список существующих веток git checkout -b *название ветки* # создать ветку git checkout *название ветки* # переключение на ветку git merge *название ветки* ``` #### Или ```cmd= git rebase *название ветки* #объединить текущую ветку с веткой *название ветки* ``` > В новой ветке находятся файлы, которые были в открытой ветке на момент создания новой ветки > > Изменение закоммиченные в одной ветке отсутсвуют в другой > > Если при объединении веток нашлись конфликтующие изменения, то при попытке коммита гит выведет список файлов с конфликтами ### Основные команды: ```cmd git init #инициализировать репозиторий git status #проверить статус файлов git add . #добавить все файлы в кеш git commit -m "*комментарий*" #создать слепок проекта git push -u origin *ветка* #загрузить коммиты на удалённый репозиторий git remote add origin *ссылка* #подключится к репозиторию git clone *ссылка* #клонировать репозиторий (загрузить) git log --oneline #вывести список всех коммитов с основной информацией git remote show *название репозитория* #вывести информацию об репозитории ```