Перейти к содержимому
RunStack
Вики· Обновлено 19 окт. 2026 г.

Шпаргалка: git

git: ежедневные команды, ветки, слияние и rebase, отмена изменений, теги, stash.

Каждый день

git status -sb
git diff                                   # что изменено и не добавлено
git diff --staged                          # что пойдёт в коммит
git add -p                                 # добавить по кусочкам
git commit -m "Fix login redirect"
git pull --rebase
git push
git log --oneline --graph -20
git log -p -- path/to/file                 # история файла
git blame -L 10,30 path/to/file

Ветки

git switch -c feature/login                # новая ветка
git switch main
git branch -a                              # все, включая удалённые
git push -u origin feature/login           # первый пуш ветки
git merge feature/login
git rebase main                            # перенести свою ветку на свежий main
git rebase --continue | --abort
git branch -d feature/login                # удалить слитую
git push origin --delete feature/login
git fetch --prune                          # убрать удалённые ветки, которых больше нет

Отменить

git restore file                           # выбросить изменения в файле
git restore --staged file                  # убрать из индекса, изменения остаются
git commit --amend                         # поправить последний коммит (до пуша)
git reset --soft HEAD~1                    # отменить коммит, изменения остаются
git reset --hard HEAD~1                    # отменить коммит вместе с изменениями
git revert <sha>                           # отменить запушенный коммит новым коммитом
git reflog                                 # куда делся коммит — найти и вернуть
git reset --hard <sha-из-reflog>
git clean -fdn                             # что удалит clean (неотслеживаемые)
git clean -fd

Отложить

git stash push -m "wip"
git stash list
git stash pop
git stash drop

Теги и релизы

git tag -a v1.4.0 -m "v1.4.0"
git push origin v1.4.0
git tag -l "v1.*"
git describe --tags

Удалённые репозитории

git remote -v
git remote set-url origin git@github.com:org/repo.git
git clone --depth 1 https://github.com/org/repo.git   # без истории
git cherry-pick <sha>                      # взять один коммит из другой ветки

Настройки

git config --global user.name "Ivan Petrov"
git config --global user.email ivan@example.com
git config --global pull.rebase true
git config --global init.defaultBranch main
git config --global alias.lg "log --oneline --graph --decorate -20"

Случайно закоммитили пароль? Удаление коммита не помогает — он остаётся в истории и копиях: смените пароль, потом чистите историю (git filter-repo).