Skip to content

Comenzi Git explicate

Comenzile Git pe care le folosești într-adevăr, grupate pe sarcini: inițializezi un depozit, salvezi instantanee, creezi ramuri și fuzionezi, citești istoricul, colaborezi cu un remote, anulezi greșelile, pui deoparte lucrul și gestionezi fișiere și submodule. Fiecare rând asociază comanda cu un apel realist.

Git are sute de comenzi, dar lucrul zilnic necesită doar câteva. Modelul mental este: arborele de lucru sunt fișierele tale, indexul (zona de staging) este următorul commit, iar HEAD este commitul curent. Faci stage, faci commit, distribui. Citește status des. Tot ce urmează presupune că o comandă deja există dacă este listată.

Tabel de referință · 55 intrări
55 of 55 rows
Instalare și configurare
Setează numele, e-mailul sau editorul o singură dată pentru toate depozitele.git config --global user.name "Ada"
Definește un nume scurt pentru o comandă pe care o tastezi des.git config --global alias.co checkout
Creează un depozit nou în folderul curent.git init
Copiază un depozit remote pe mașina ta.git clone git@github.com:org/repo.git
Copiază doar cele mai noi commituri dintr-o singură ramură.git clone --depth 1 --single-branch git@github.com:org/repo.git
Bazele instantaneelor
Afișează ce este stagiat, modificat și neurmărit.git status -sb
Stagiază modificările astfel încât să intre în următorul commit.git add src/app.ts
Revizuiește modificările bucată cu bucată și stagiază doar cele pe care le accepți.git add -p src/app.ts
Stagiază modificările din toate fișierele urmărite, fără a adăuga fișiere noi.git add -u
Înregistrează modificările stagate ca un commit nou.git commit -m "fix: null check"
Înlocuiește ultimul commit cu unul corectat.git commit --amend -m "fix: handle empty input"
Afișează modificările nestagiate, sau pe cele stagate cu --staged.git diff --staged
Afișează fiecare modificare de la ultimul commit, stagiată sau nu.git diff HEAD
Ramuri și fuziune
Listează, creează sau șterge ramuri.git branch feature-x
Șterge o ramură fuzionată (-D forțează, -a listează toate ramurile).git branch -d feature-x
Comută între ramuri (înlocuitorul modern pentru checkout).git switch feature-x
Creează o ramură nouă și comută pe ea într-un singur pas.git switch -c feature-x
Comută ramurile sau restaurează fișiere (comanda mai veche și mai cuprinzătoare).git checkout feature-x
Aduce modificările altei ramuri în ramura curentă.git merge feature-x
Anulează o fuziune cu conflicte și readuce ramura la starea anterioară.git merge --abort
Reia commiturile ramurii curente peste o altă ramură.git rebase main
Combină, reordonează sau editează commiturile în timp ce le reia.git rebase -i main
Copiază un singur commit din altă ramură pe aceasta.git cherry-pick a1b2c3d
Marchează un commit cu o etichetă lizibilă, precum o versiune.git tag -a v1.2.0
Extrage o altă ramură într-un folder separat, în același timp.git worktree add ../repo-feature feature-x
Inspectarea istoricului
Parcurge istoricul commiturilor.git log --oneline --graph --decorate
Parcurge istoricul din toate ramurile, nu doar din cea curentă.git log --oneline --graph --all
Afișează diff-ul complet și mesajul unui commit.git show HEAD
Afișează cine a modificat ultima dată fiecare linie a unui fișier.git blame src/app.ts
Afișează fiecare commit la care a indicat HEAD, inclusiv cele abandonate.git reflog
Caută în istoric prin înjumătățiri commitul care a stricat ceva.git bisect start
Rezumă commiturile pe autori.git shortlog -sn
Denumește commitul curent numărând de la cel mai apropiat tag.git describe --tags
Colaborare cu remote
Listează sau adaugă depozite remote.git remote add origin <url>
Listează remote-urile cu URL-urile de fetch și push.git remote -v
Descarcă modificările remote fără a-ți modifica ramurile.git fetch origin
Descarcă modificările remote și elimină referințele către ramurile remote șterse.git fetch --prune
Descarcă și fuzionează modificările remote ale ramurii curente.git pull --rebase
Trimite commiturile locale către remote.git push -u origin feature-x
Suprascrie ramura remote, dar doar dacă nimeni nu a făcut push înainte.git push --force-with-lease origin feature-x
Anularea modificărilor
Renunță la modificările din arborele de lucru sau le destagiază.git restore src/app.ts
Destagiază un fișier și păstrează modificările lui în arborele de lucru.git restore --staged src/app.ts
Mută vârful ramurii curente și, opțional, indexul.git reset --hard HEAD~1
Adaugă un commit nou care anulează unul anterior (sigur de distribuit).git revert HEAD
Șterge fișierele și folderele neurmărite.git clean -fd
Stash
Salvează lucrul necomis și resetează arborele de lucru.git stash -u
Afișează toate stash-urile pe care le-ai salvat.git stash list
Reaplică un stash și îl păstrează în listă.git stash apply stash@{1}
Șterge un stash de care nu mai ai nevoie.git stash drop stash@{1}
Reaplică cel mai recent stash și îl elimină.git stash pop
Fișiere și submodule
Mută sau redenumirează un fișier și stagiază modificarea.git mv old.ts src/new.ts
Șterge un fișier și stagiază ștergerea.git rm src/old.ts
Urmărește un alt depozit ca folder în interiorul acestuia.git submodule add git@github.com:org/lib.git lib
Extrage doar folderele pe care le numești dintr-un depozit mare.git sparse-checkout set src docs
Exportă arborele unui commit ca fișier tar sau zip.git archive -o repo.zip HEAD