Настройка
git config --global user.name "Имя"git config --global user.email "me@example.com"git config --global init.defaultBranch maingit config --global pull.rebase truegit config --global alias.lg "log --oneline --graph --all"Старт
git initgit clone адресgit remote add origin адресЕжедневная работа
git statusgit add .git add -pgit commit -m "сообщение"git diffgit diff --stagedgit log --oneline --graph --allgit pull --rebasegit pushВетки
git branchgit switch -c имяgit switch имяgit merge имяgit rebase maingit branch -d имяgit push origin --delete имяgit fetch --pruneОтмена
git restore файлgit restore --staged файлgit commit --amendgit reset --soft HEAD~1git reset --hard HEAD~1git revert хэшgit stashgit stash popgit refloggit clean -fdИстория и поиск
git show хэшgit blame файлgit log -S"текст"git log --author="Имя"git bisect startgit cherry-pick хэшТеги
git tag -a v1.0.0 -m "Release"git push origin v1.0.0git tag -d v1.0.0Сценарии
Начать новую задачу:
git switch maingit pull --rebasegit switch -c feature/названиеОбновить свою ветку свежим main:
git fetchgit rebase origin/maingit push --force-with-leaseСклеить мелкие коммиты перед PR:
git rebase -i origin/maingit push --force-with-leaseСрочно переключиться, не коммитя незаконченное:
git stash push -m "описание"git switch другая-веткаgit switch -git stash popЗабыли добавить файл в последний коммит:
git add файлgit commit --amend --no-editКоммит ушел не в ту ветку:
git switch нужнаяgit cherry-pick хэшgit switch невернаяgit reset --hard HEAD~1Отменить коммит, уже попавший в main:
git revert хэшgit pushВернуть то, что «пропало»:
git refloggit switch -c rescue хэшЗолотые правила
- Коммитьте часто и по смыслу.
- Никогда не переписывайте историю общих веток.
- Не храните секреты в репозитории.
mainзащищен, изменения идут через PR.- Перед опасной командой проверьте
git status. - Если что-то пошло не так, не паникуйте: почти все восстановимо через
git reflog.
