Установка и настройка ⤢ git configЗадаёт ваше имя, email или редактор один раз для всех репозиториев. git config --global user.name "Ada" ⤢ git config --global aliasОпределяет короткое имя для команды, которую вы вводите часто. git config --global alias.co checkout ⤢ git initСоздаёт новый репозиторий в текущей папке. git init ⤢ git cloneКопирует удалённый репозиторий на ваш компьютер. git clone git@github.com:org/repo.git ⤢ git clone --depthКопирует только новейшие коммиты одной ветки. git clone --depth 1 --single-branch git@github.com:org/repo.git Основы снапшотов ⤢ git statusПоказывает, что в индексе, что изменено и что не отслеживается. git status -sb ⤢ git addДобавляет изменения в индекс, чтобы они попали в следующий коммит. git add src/app.ts ⤢ git add -pПросматривает изменения по кускам и добавляет только принятые вами. git add -p src/app.ts ⤢ git add -uДобавляет изменения всех отслеживаемых файлов, не добавляя новые. git add -u ⤢ git commitЗаписывает изменения из индекса как новый коммит. git commit -m "fix: null check" ⤢ git commit --amendЗаменяет последний коммит исправленным. git commit --amend -m "fix: handle empty input" ⤢ git diffПоказывает изменения вне индекса, а с --staged — добавленные в него. git diff --staged ⤢ git diff HEADПоказывает все изменения с последнего коммита, в индексе или нет. git diff HEAD Ветвление и слияние ⤢ git branchПоказывает, создаёт или удаляет ветки. git branch feature-x ⤢ git branch -dУдаляет слитую ветку (-D форсирует удаление, -a показывает все ветки). git branch -d feature-x ⤢ git switchПереключает ветки (современная замена checkout). git switch feature-x ⤢ git switch -cСоздаёт новую ветку и сразу переключается на неё. git switch -c feature-x ⤢ git checkoutПереключает ветки или восстанавливает файлы (старая, более широкая команда). git checkout feature-x ⤢ git mergeВносит изменения другой ветки в текущую ветку. git merge feature-x ⤢ git merge --abortОтменяет конфликтное слияние и возвращает ветку в прежнее состояние. git merge --abort ⤢ git rebaseПовторно применяет коммиты текущей ветки поверх другой ветки. git rebase main ⤢ git rebase -iОбъединяет, переупорядочивает или правит коммиты при повторном применении. git rebase -i main ⤢ git cherry-pickКопирует отдельный коммит из другой ветки в текущую. git cherry-pick a1b2c3d ⤢ git tagПомечает коммит читаемой меткой, например версией. git tag -a v1.2.0 ⤢ git worktreeИзвлекает другую ветку в отдельную папку одновременно с текущей. git worktree add ../repo-feature feature-x Изучение истории ⤢ git logПросматривает историю коммитов. git log --oneline --graph --decorate ⤢ git log --allПросматривает историю всех веток, а не только текущей. git log --oneline --graph --all ⤢ git showПоказывает полный diff и сообщение одного коммита. git show HEAD ⤢ git blameПоказывает, кто последним менял каждую строку файла. git blame src/app.ts ⤢ git reflogПоказывает все коммиты, на которые указывал HEAD, включая отброшенные. git reflog ⤢ git bisectИщет по истории делением пополам коммит, который что-то сломал. git bisect start ⤢ git shortlogСуммирует коммиты по авторам. git shortlog -sn ⤢ git describeНазывает текущий коммит отсчётом от ближайшего тега. git describe --tags Работа с удалённым репозиторием ⤢ git remoteПоказывает или добавляет удалённые репозитории. git remote add origin <url> ⤢ git remote -vПоказывает удалённые репозитории с их URL fetch и push. git remote -v ⤢ git fetchСкачивает удалённые изменения, не меняя ваши ветки. git fetch origin ⤢ git fetch --pruneСкачивает удалённые изменения и удаляет ссылки на удалённые ветки. git fetch --prune ⤢ git pullСкачивает и вливает удалённые изменения текущей ветки. git pull --rebase ⤢ git pushОтправляет локальные коммиты в удалённый репозиторий. git push -u origin feature-x ⤢ git push --force-with-leaseПерезаписывает удалённую ветку, но только если никто не отправил изменения раньше вас. git push --force-with-lease origin feature-x Отмена изменений ⤢ git restoreОтбрасывает изменения рабочего каталога или убирает их из индекса. git restore src/app.ts ⤢ git restore --stagedУбирает файл из индекса, сохраняя его правки в рабочем каталоге. git restore --staged src/app.ts ⤢ git resetСдвигает кончик текущей ветки и, по желанию, индекс. git reset --hard HEAD~1 ⤢ git revertДобавляет новый коммит, отменяющий предыдущий (безопасно публиковать). git revert HEAD ⤢ git cleanУдаляет неотслеживаемые файлы и папки. git clean -fd Стэши ⤢ git stashСохраняет незафиксированную работу и сбрасывает рабочий каталог. git stash -u ⤢ git stash listПоказывает все сохранённые стэши. git stash list ⤢ git stash applyПовторно применяет стэш, сохраняя его в списке. git stash apply stash@{1} ⤢ git stash dropУдаляет стэш, который больше не нужен. git stash drop stash@{1} ⤢ git stash popПовторно применяет последний стэш и удаляет его. git stash pop Файлы и сабмодули ⤢ git mvПеремещает или переименовывает файл и добавляет изменение в индекс. git mv old.ts src/new.ts ⤢ git rmУдаляет файл и добавляет удаление в индекс. git rm src/old.ts ⤢ git submoduleОтслеживает другой репозиторий как папку внутри этого. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutИзвлекает только названные папки из большого репозитория. git sparse-checkout set src docs ⤢ git archiveЭкспортирует дерево коммита как файл tar или zip. git archive -o repo.zip HEAD