git init # новый репозиторийgit clone URL # скачать существующийgit clone URL dir # в конкретную папкуgit clone --depth 1 URL # только последний коммит (быстро)
Базовые операции
git status # что изменилосьgit status -sb # короткий форматgit add file # добавить в staginggit add . # добавить всёgit add -p # интерактивно (по кускам)git commit -m "message" # зафиксироватьgit commit --amend # исправить последний коммит
Ветки
git branch # списокgit branch -a # + remotegit branch -v # с последним коммитомgit switch -c name # создать и переключитьсяgit switch name # переключитьсяgit switch - # предыдущая веткаgit branch -d name # удалить (вмерженную)git branch -D name # удалить (любую)
Merge и Rebase
git merge branch # слить веткуgit merge --abort # отменить mergegit rebase main # перебазировать на maingit rebase -i HEAD~3 # интерактивный rebasegit rebase --abort # отменить rebasegit cherry-pick SHA # скопировать коммит
Remote
git remote -v # список remotesgit remote add origin URL # добавитьgit push -u origin main # первый pushgit push # отправитьgit push --force-with-lease # force push (безопасный)git pull # получить + mergegit pull --rebase # получить + rebasegit fetch # получить без merge
История
git log --oneline # компактный логgit log --oneline --graph --all # графgit log -p file # изменения файлаgit log --author="Name" # по авторуgit log --since="2 weeks ago" # по датеgit show SHA # детали коммитаgit blame file # кто менял каждую строку
Отмена
git restore file # отменить изменения в файлеgit restore --staged file # убрать из staginggit reset --soft HEAD~1 # откатить коммит (сохранить staging)git reset HEAD~1 # откатить коммит (сохранить файлы)git reset --hard HEAD~1 # откатить коммит (удалить всё)git revert SHA # отменить коммитом (безопасно)git reflog # история всех действий
Stash
git stash # спрятать измененияgit stash pop # достать обратноgit stash list # списокgit stash drop # удалить последнийgit stash clear # удалить все
Diff
git diff # working dir vs staginggit diff --staged # staging vs commitgit diff main..feature # между веткамиgit diff SHA1 SHA2 # между коммитамиgit diff --stat # только статистика
Теги
git tag v1.0.0 # лёгкий тегgit tag -a v1.0.0 -m "Release" # аннотированныйgit push --tags # отправить тегиgit tag -d v1.0.0 # удалить локально
Очистка
git clean -fd # удалить untracked файлы и директорииgit clean -fdn # dry-run (показать что удалится)git gc # garbage collection