Foaie de referință Git
O referință Git căutabilă și imprimabilă — configurare, ramuri, îmbinare, rebazare, depozite la distanță, stash, etichete și anularea modificărilor. Gratuit.
Instalare și configurare
10git config --global user.name "Jane Doe"
Setează numele atașat commit-urilor tale
git config --global user.email "jane@example.com"
Setează emailul atașat commit-urilor tale
git config --global init.defaultBranch main
Pornește repo-urile noi pe branch-ul "main"
git config --global core.editor "code --wait"
Folosește VS Code ca editor Git implicit
git config --global pull.rebase true
Rebase în loc de merge la pull
git config --global alias.co checkout
Creează un alias-scurtătură (git co)
git config --global --list
Listează toate valorile de configurare globale
git config user.email
Afișează emailul pentru repo-ul curent
git config --global color.ui auto
Activează ieșirea colorată în linia de comandă
git help <command>
Deschide pagina de manual pentru o comandă
Creează și clonează repo-uri
9git init
Inițializează un repo nou în folderul curent
git init my-project
Creează un repo nou într-un director nou
git clone https://example.com/repo.git
Clonează un repo remote prin HTTPS
git clone git@example.com:user/repo.git
Clonează un repo remote prin SSH
git clone <url> my-dir
Clonează într-un nume de director specific
git clone --depth 1 <url>
Clonă superficială cu doar ultimul commit
git clone --branch dev <url>
Clonează și comută pe un branch specific
git clone --recurse-submodules <url>
Clonează și inițializează toate submodulele
git remote add origin <url>
Atașează un remote la un repo local existent
Staging și committing
11git add file.txt
Adaugă un singur fișier în stage pentru următorul commit
git add .
Adaugă în stage toate modificările din directorul curent
git add -A
Adaugă în stage toate modificările, inclusiv ștergerile
git add -p
Adaugă interactiv în stage fragmentele selectate
git commit -m "Add login form"
Commit modificările din stage cu un mesaj
git commit -am "Fix typo"
Stage fișierele urmărite și commit într-un singur pas
git commit --amend
Editează cel mai recent commit
git commit --amend --no-edit
Adaugă modificările din stage la ultimul commit
git rm file.txt
Șterge un fișier și pune ștergerea în stage
git mv old.txt new.txt
Redenumește sau mută un fișier și pune-l în stage
git reset file.txt
Scoate un fișier din stage păstrând modificările
Branch-uri
10git branch
Listează toate branch-urile locale
git branch -a
Listează branch-urile locale și de urmărire remote
git switch -c feature/login
Creează un branch nou și comută pe el
git switch main
Comută pe un branch existent
git checkout -b hotfix
Mod clasic de a crea și comuta branch-uri
git branch -m old-name new-name
Redenumește un branch
git branch -d feature/login
Șterge un branch local deja merge-uit
git branch -D feature/login
Forțează ștergerea unui branch local nemerge-uit
git push origin --delete feature/login
Șterge un branch pe remote
git switch -
Comută înapoi pe branch-ul anterior
Merging și rebasing
10git merge feature/login
Merge un branch în cel curent
git merge --no-ff feature/login
Merge creând întotdeauna un commit de merge
git merge --squash feature/login
Combină un branch într-o singură modificare în stage
git merge --abort
Anulează un merge cu conflicte
git rebase main
Reaplică commit-urile branch-ului curent peste main
git rebase -i HEAD~3
Editează interactiv ultimele 3 commit-uri
git rebase --continue
Reia un rebase după rezolvarea conflictelor
git rebase --abort
Anulează un rebase în desfășurare
git cherry-pick <hash>
Aplică un singur commit peste branch-ul curent
git mergetool
Lansează un instrument pentru rezolvarea conflictelor de merge
Remote-uri și sincronizare
11git remote -v
Listează remote-urile configurate și URL-urile lor
git remote add upstream <url>
Adaugă un al doilea remote numit upstream
git remote set-url origin <url>
Schimbă URL-ul unui remote existent
git fetch
Descarcă modificările remote fără merge
git fetch --all --prune
Fetch toate remote-urile și elimină branch-urile învechite
git pull
Fetch și integrează modificările remote
git pull --rebase
Pull și rebase commit-urile locale deasupra
git push
Încarcă commit-urile locale pe remote
git push -u origin main
Push și setează branch-ul de urmărire upstream
git push --force-with-lease
Force-push în siguranță fără a suprascrie munca altora
git push origin --tags
Push toate tag-urile locale pe remote
Inspectare și comparare
10git status
Afișează fișierele staged, unstaged și neurmărite
git status -s
Afișează starea într-un format scurt și compact
git diff
Afișează modificările unstaged față de index
git diff --staged
Afișează modificările din stage pentru următorul commit
git diff main..feature
Compară două branch-uri
git diff HEAD~1 HEAD
Compară ultimul commit cu părintele său
git show <hash>
Afișează detaliile și diff-ul unui commit
git show HEAD:file.txt
Afișează un fișier așa cum era într-un commit
git log --stat
Afișează commit-urile cu rezumate ale fișierelor modificate
git shortlog -sn
Numără commit-urile grupate după autor
Anularea modificărilor
10git restore file.txt
Renunță la modificările unstaged dintr-un fișier
git restore --staged file.txt
Scoate un fișier din stage păstrând modificările
git restore --source=HEAD~1 file.txt
Restaurează un fișier dintr-un commit anterior
git checkout -- file.txt
Mod clasic de a renunța la modificările locale
git reset --soft HEAD~1
Anulează ultimul commit, păstrează modificările în stage
git reset --mixed HEAD~1
Anulează ultimul commit, păstrează modificările unstaged
git reset --hard HEAD~1
Anulează ultimul commit și renunță la modificări
git revert <hash>
Creează un commit nou care anulează un commit
git clean -fd
Șterge fișierele și directoarele neurmărite
git clean -nd
Previzualizează ce ar șterge clean
Stashing
10git stash
Salvează modificările necommituite și curăță arborele
git stash push -m "wip"
Stash modificările cu un mesaj descriptiv
git stash -u
Stash inclusiv fișierele neurmărite
git stash list
Listează toate seturile de modificări din stash
git stash show -p
Afișează diff-ul ultimului stash
git stash apply
Reaplică ultimul stash și păstrează-l
git stash pop
Reaplică ultimul stash și elimină-l
git stash apply stash@{2}
Reaplică un stash specific după index
git stash drop stash@{0}
Șterge o singură intrare din stash
git stash clear
Șterge toate intrările din stash
Tag-uri
9git tag
Listează toate tag-urile
git tag v1.0.0
Creează un tag lightweight la HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
Creează un tag adnotat cu un mesaj
git tag -a v1.0.0 <hash>
Pune tag pe un commit anterior specific
git show v1.0.0
Afișează detaliile unui tag
git push origin v1.0.0
Push un singur tag pe remote
git push origin --tags
Push toate tag-urile locale pe remote
git tag -d v1.0.0
Șterge un tag local
git push origin --delete v1.0.0
Șterge un tag pe remote
Loguri și istoric
12git log
Afișează istoricul complet al commit-urilor
git log --oneline
Afișează un log compact, o linie per commit
git log --oneline --graph --all
Vizualizează branch-urile ca un grafic ASCII
git log -p
Afișează istoricul commit-urilor cu diff-uri
git log --author="Jane"
Filtrează istoricul după autor
git log --since="2 weeks ago"
Filtrează istoricul după interval de date
git log --pretty=format:"%h %an %s"
Personalizează formatul ieșirii log
git blame file.txt
Afișează cine a modificat ultima dată fiecare linie
git reflog
Afișează istoricul locurilor unde a fost HEAD
git bisect start
Începe o căutare binară pentru un commit defect
git bisect good <hash>
Marchează un commit ca bun-cunoscut în timpul bisect
git bisect bad
Marchează commit-ul curent ca defect
Nicio intrare nu corespunde cu „:q”.
Ai nevoie de ajutor?
Ai întâmpinat o problemă cu acest instrument? Spune-ne.