Вики· Обновлено 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).
