Instalare și configurare ⤢ git configSetează numele, e-mailul sau editorul o singură dată pentru toate depozitele. git config --global user.name "Ada" ⤢ git config --global aliasDefinește un nume scurt pentru o comandă pe care o tastezi des. git config --global alias.co checkout ⤢ git initCreează un depozit nou în folderul curent. git init ⤢ git cloneCopiază un depozit remote pe mașina ta. git clone git@github.com:org/repo.git ⤢ git clone --depthCopiază doar cele mai noi commituri dintr-o singură ramură. git clone --depth 1 --single-branch git@github.com:org/repo.git Bazele instantaneelor ⤢ git statusAfișează ce este stagiat, modificat și neurmărit. git status -sb ⤢ git addStagiază modificările astfel încât să intre în următorul commit. git add src/app.ts ⤢ git add -pRevizuiește modificările bucată cu bucată și stagiază doar cele pe care le accepți. git add -p src/app.ts ⤢ git add -uStagiază modificările din toate fișierele urmărite, fără a adăuga fișiere noi. git add -u ⤢ git commitÎnregistrează modificările stagate ca un commit nou. git commit -m "fix: null check" ⤢ git commit --amendÎnlocuiește ultimul commit cu unul corectat. git commit --amend -m "fix: handle empty input" ⤢ git diffAfișează modificările nestagiate, sau pe cele stagate cu --staged. git diff --staged ⤢ git diff HEADAfișează fiecare modificare de la ultimul commit, stagiată sau nu. git diff HEAD Ramuri și fuziune ⤢ git branchListează, creează sau șterge ramuri. git branch feature-x ⤢ git branch -dȘterge o ramură fuzionată (-D forțează, -a listează toate ramurile). git branch -d feature-x ⤢ git switchComută între ramuri (înlocuitorul modern pentru checkout). git switch feature-x ⤢ git switch -cCreează o ramură nouă și comută pe ea într-un singur pas. git switch -c feature-x ⤢ git checkoutComută ramurile sau restaurează fișiere (comanda mai veche și mai cuprinzătoare). git checkout feature-x ⤢ git mergeAduce modificările altei ramuri în ramura curentă. git merge feature-x ⤢ git merge --abortAnulează o fuziune cu conflicte și readuce ramura la starea anterioară. git merge --abort ⤢ git rebaseReia commiturile ramurii curente peste o altă ramură. git rebase main ⤢ git rebase -iCombină, reordonează sau editează commiturile în timp ce le reia. git rebase -i main ⤢ git cherry-pickCopiază un singur commit din altă ramură pe aceasta. git cherry-pick a1b2c3d ⤢ git tagMarchează un commit cu o etichetă lizibilă, precum o versiune. git tag -a v1.2.0 ⤢ git worktreeExtrage o altă ramură într-un folder separat, în același timp. git worktree add ../repo-feature feature-x Inspectarea istoricului ⤢ git logParcurge istoricul commiturilor. git log --oneline --graph --decorate ⤢ git log --allParcurge istoricul din toate ramurile, nu doar din cea curentă. git log --oneline --graph --all ⤢ git showAfișează diff-ul complet și mesajul unui commit. git show HEAD ⤢ git blameAfișează cine a modificat ultima dată fiecare linie a unui fișier. git blame src/app.ts ⤢ git reflogAfișează fiecare commit la care a indicat HEAD, inclusiv cele abandonate. git reflog ⤢ git bisectCaută în istoric prin înjumătățiri commitul care a stricat ceva. git bisect start ⤢ git shortlogRezumă commiturile pe autori. git shortlog -sn ⤢ git describeDenumește commitul curent numărând de la cel mai apropiat tag. git describe --tags Colaborare cu remote ⤢ git remoteListează sau adaugă depozite remote. git remote add origin <url> ⤢ git remote -vListează remote-urile cu URL-urile de fetch și push. git remote -v ⤢ git fetchDescarcă modificările remote fără a-ți modifica ramurile. git fetch origin ⤢ git fetch --pruneDescarcă modificările remote și elimină referințele către ramurile remote șterse. git fetch --prune ⤢ git pullDescarcă și fuzionează modificările remote ale ramurii curente. git pull --rebase ⤢ git pushTrimite commiturile locale către remote. git push -u origin feature-x ⤢ git push --force-with-leaseSuprascrie ramura remote, dar doar dacă nimeni nu a făcut push înainte. git push --force-with-lease origin feature-x Anularea modificărilor ⤢ git restoreRenunță la modificările din arborele de lucru sau le destagiază. git restore src/app.ts ⤢ git restore --stagedDestagiază un fișier și păstrează modificările lui în arborele de lucru. git restore --staged src/app.ts ⤢ git resetMută vârful ramurii curente și, opțional, indexul. git reset --hard HEAD~1 ⤢ git revertAdaugă un commit nou care anulează unul anterior (sigur de distribuit). git revert HEAD ⤢ git cleanȘterge fișierele și folderele neurmărite. git clean -fd Stash ⤢ git stashSalvează lucrul necomis și resetează arborele de lucru. git stash -u ⤢ git stash listAfișează toate stash-urile pe care le-ai salvat. git stash list ⤢ git stash applyReaplică un stash și îl păstrează în listă. git stash apply stash@{1} ⤢ git stash dropȘterge un stash de care nu mai ai nevoie. git stash drop stash@{1} ⤢ git stash popReaplică cel mai recent stash și îl elimină. git stash pop Fișiere și submodule ⤢ git mvMută sau redenumirează un fișier și stagiază modificarea. git mv old.ts src/new.ts ⤢ git rmȘterge un fișier și stagiază ștergerea. git rm src/old.ts ⤢ git submoduleUrmărește un alt depozit ca folder în interiorul acestuia. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutExtrage doar folderele pe care le numești dintr-un depozit mare. git sparse-checkout set src docs ⤢ git archiveExportă arborele unui commit ca fișier tar sau zip. git archive -o repo.zip HEAD