Шпаргалка по Гиту (основные команды Git)

6 ноября 2018
Вывод списка настроек Гита
git config --list

Установка имени пользователя
git config --global user.name "Vladimir B"

Установка почты пользователя
git config --global user.email test@test.ru

Создание нового репозитория в текущей папке
git init

Копирование репозитория https://test-project.ru/git-rep.git в текущую папку
git clone https://test-project.ru/git-rep.git .

Добавление связи с внешним репозиторием
git remote add origin https://test-project.ru/git-rep.git

Показ списка внешних репозиториев, связанных с текущим и доступных на загрузку и выгрузку изменений
git remote -v

Показ состояния рабочего пространства (показывает незафиксированные в репозитории изменённые, новые и удалённые файлы и папки)
git status

Добавление изменений в индекс (индексация)
git add .

Добавление изменений конкретного файла index.php
git add index.php

Индексация и сохранение изменений файлов в Гит в виде коммита с комментарием "task/18507: добавил проверку правильности ввода адреса почты"
git commit -a -m "task/18507: добавил проверку правильности ввода email"

Установить новый комментарий для последнего коммита
git commit --amend -m "task/18507: добавил проверку правильности ввода адреса почты"

Создание нового коммита, который отменят изменения из коммита с хешем 3a32a65
git revert 3a32a65

Получить список веток
git branch

Получить список удалённых веток
git branch -a

Создание от текущей ветки новой ветки с именем task/18507
git branch task/18507

Переименовать текущую ветку на task/18507-v2
git branch -m task/18507-v2

Создание от текущей ветки новой ветки с именем task/18507 и переход на эту ветку
git checkout -b task/18507

Переход с текущй ветки на ветку release
git checkout release

Удалить ветку с именем task/18507
git branch -d task/18507

Удаление ветки task/18507 во внешнем репозитории origin
git push -d origin task/18507

Получить все изменения из связанного внешнего репозитория
git pull

Выгрузить текущую веткe в ветку task/18507 из связанного внешнего репозитория
git push origin task/18507

Влитие в текущую ветку ветки task/18507 с использованием метода «Fast-forward» (подробнее о методе в статье «Параметр слияния --no-ff в Гите»)
git merge --no-ff task/18507

Открыть редактор для разрешения конфликта слияния
git mergetool

Отменить слияние в процессе возникновения конфликта слияния
git merge --abort

Продолжить слияние (используется для продолжения процесса после разрешения конфликта слияния)
git merge --continue

Сброс изменений всех файлов текущей ветки на состояние последнего коммита
git reset --hard

Сброс изменений всех файлов текущей ветки на состояние предыдущего коммита
git reset --hard HEAD~1

Сброс изменений всех файлов текущей ветки на состояние от коммита с хешем 3a32a65
git reset --hard 3a32a65

Удаление из репозитория всех неотслеживаемых файлов (параметр -f) и папок (параметр -d)
git clean -f -d

Вывод списка последних коммитов (стандартный вид)
git log

Вывод списка последних коммитов (каждый коммит представлен одной строкой)
git log --oneline

Вывод списка последних записей из журнала ссылок
git reflog

Просмотр изменений в текущей рабочей области по сравнению с последним коммитом текущей ветки
git diff

Просмотр изменений в текущей рабочей области по сравнению с последним коммитом из ветки release
git diff release

Просмотр изменений файла index.php из текущей рабочей области по сравнению с файлом index.php из последнего коммита ветки release
git diff release index.php

Показать список изменённых файлов в текущей ветке по сравнению с веткой release
$ git diff release --name-only

Перебазировать текущую ветку поверх ветки release (используется для актуализации начала текущей ветки с целью уменьшения возможных конфликтов слияния)
git rebase release

Отменить перебазирование в процессе возникновения конфликта слияния
git rebase --abort

Продолжить перебазирование (используется для продолжения процесса после разрешения конфликта слияния)
git rebase --continue