# Команды Git

Отображение непроиндексированных изменений - `git diff`

Отображение списка отличающихся файлов - `git diff --name-only <em>branch1 branch2</em>`

Отображение статуса отличающихся файлов (добавлен/удалён/модифицирован) - `git diff --name-status <em>branch1 branch2</em>`

Отображение проиндексированных изменений, входящих в следующий коммит - `git diff --staged` или `git diff --cached`

Удаление файла из индекса - `git rm --cached <em>file</em>`

Отмена изменений в файле - `git checkout <em>file</em>`

Удаление последнего локального коммита - `git reset --hard HEAD~`

Принудительная отправка изменений в удалённую ветку (в т.ч. после удаления локального коммита) - `git push -f`

Отправка всех веток в удалённый репозиторий - `git push --all origin`

Отправка ветки *branch* в удалённый репозиторий - `git push origin <em>branch</em>`

Отправка ветки *branch* в удалённый репозиторий, если ранее её там не существовало - `git push origin <em>branch:remotebranch</em>`

Создание новой ветки с переключением на неё - `git switch -c <em>branch</em>`

Создание новой ветки из удалённой ветки с переключением на неё - `git switch -c <em>branch origin:remotebranch</em>`

Сохранение изменений во временное хранилище (к примеру, чтобы переключиться в другую ветку) - `git stash`

Извлечение изменений из временного хранилища - `git stash pop`

Синхронизация изменений с удалённым сервером - `git fetch origin`

Удаление ветки на удалённом сервере - `git push origin --delete <em>remotebranch</em>`

Генерация номера сборки - `git describe master`