Skip to content

Comenzi Git Cheat Sheet

Git este un sistem de control al versiunilor distribuit open-source care poate gestiona eficient și la viteză mare versiunile proiectelor de la foarte mici la foarte mari. Git este un software de control al versiunilor open-source dezvoltat de Linus Torvalds pentru a ajuta la gestionarea dezvoltării nucleului Linux.

Noțiuni de bază Git

git init <directory>

Creează un repozitoriu Git gol în directorul specificat. Dacă este rulat fără parametri, inițializează directorul curent ca repozitoriu Git.

git clone <repo>

Clonează repozitoriul situat la <repo> pe mașina locală. Repozitoriul original poate fi situat pe sistemul de fișiere local sau pe o mașină la distanță prin HTTP sau SSH.

git config user.name <name>

Definește numele autorului care va fi utilizat pentru toate commit-urile din repozitoriul curent.

git add <directory>

Adaugă modificările din <directory> pentru următorul commit.

git commit -m "<message>"

Confirmă snapshot-ul din zona de staging, utilizând <message> ca mesaj de commit.

git status

Listează ce fișiere sunt în staging, ce fișiere nu sunt în staging și ce fișiere nu sunt urmărite.

git log

Afișează întregul istoric al commit-urilor folosind formatul implicit.

git diff

Compară diferențele dintre directorul de lucru (care nu a fost încă adăugat cu git add) și zona de staging (după git add).

Anularea modificărilor

git revert <commit>

Creează un nou commit care anulează toate modificările efectuate în <commit> și îl aplică branch-ului curent.

git reset <file>

Elimină <file> din zona de staging, dar păstrează directorul de lucru neschimbat. Această comandă scoate un fișier din staging fără a suprascrie modificările.

git clean -n

Arată ce fișiere vor fi eliminate din directorul de lucru. Utilizați flag-ul -f în loc de flag-ul -n pentru a efectua curățarea.

Rescrierea istoricului

git commit --amend

Modifică ultimul eveniment de commit Git. Dacă directorul de lucru are modificări care pot fi confirmate, acele modificări vor fi, de asemenea, confirmate atunci când utilizați comanda git commit –amend.

git rebase <base>

Resetează branch-ul curent la <base>. <base> poate fi un ID de commit, numele unui branch, un tag sau HEAD.

git reflog

Permite vizualizarea tuturor înregistrărilor operațiunilor tuturor branch-urilor (inclusiv înregistrările de commit șterse și operațiunile de reset).

Branch-uri Git

git branch

Listează toate branch-urile. Adăugați un parametru <branch> pentru a crea un nou branch numit <branch>.

git checkout -b <branch>

Creează și se mută pe un nou branch numit <branch>. Omiteți -b pentru a vă muta pe un branch existent.

git merge <branch>

Fuzionează branch-ul <branch> în branch-ul curent.

Repozitorii la distanță (Remote)

git remote add <name> <url>

Adaugă un nou repozitoriu la distanță. După adăugarea remote-ului, puteți utiliza <name> ca scurtătură pentru <url> în alte comenzi.

git fetch <remote> <branch>

Preia toate actualizările pentru branch-ul specificat din repozitoriu, dar nu le fuzionează cu branch-ul local.

git pull <remote>

Preia copia la distanță specificată a branch-ului curent și o fuzionează imediat în copia locală.

git push <remote> <branch>

Împinge branch-ul către <remote>, împreună cu commit-urile și obiectele necesare. Dacă repozitoriul la distanță nu există, se creează un branch numit în repozitoriul la distanță.

git config

git config --global user.name <name>

Definește numele autorului pentru toate commit-urile utilizatorului curent.

git config --global user.email <email>

Definește e-mail-ul autorului pentru toate commit-urile utilizatorului curent.

git config --global alias.<alias-name> <git-command>

Creează o scurtătură (alias) pentru o comandă Git.

git config --system core.editor <editor>

Setează editorul de text utilizat de comenzi pentru toți utilizatorii de pe computer.

git config --global --edit

Deschide fișierul de configurare globală într-un editor de text pentru editare manuală.

git log

git log -<limit>

Afișează ultimele <limit> înregistrări din istoricul commit-urilor.

git log --oneline

Afișează istoricul commit-urilor, comprimând fiecare commit pe o singură linie.

git log -p

Afișează istoricul commit-urilor și diff-ul complet pentru fiecare commit.

git log --stat

Afișează istoricul commit-urilor, inclusiv fișierele modificate și numărul relativ de linii adăugate sau șterse din fiecare fișier.

git log --author="<pattern>"

Caută commit-uri realizate de un anumit autor.

git log --grep="<pattern>"

Caută în istoricul commit-urilor folosind potrivirea cu expresii regulate.

git log <since>..<until>

Afișează commit-urile care au avut loc între <since> și <until>.

git log -- <file>

Afișează numai înregistrările de commit care conțin fișierul specificat.

git diff

git diff HEAD

Compară diferențele dintre directorul de lucru (care nu a fost încă adăugat cu git add) și repozitoriu (după git commit).

git diff --cached

Compară diferențele dintre zona de staging (după git add) și repozitoriu (după git commit).

git reset

git reset

Resetează zona de staging pentru a corespunde celui mai recent commit, dar păstrează directorul de lucru neschimbat.

git reset --hard

Resetează atât zona de staging, cât și directorul de lucru la cel mai recent commit, suprascriind toate modificările din directorul de lucru.

git reset <commit>

Mută indicatorul branch-ului curent înapoi la <commit> și resetează zona de staging, dar nu modifică directorul de lucru.

git reset --hard <commit>

La fel ca mai sus, dar resetează atât zona de staging, cât și directorul de lucru. Șterge modificările neconfirmate și toate commit-urile după <commit>.

git pull

git pull --rebase <remote>

Preia copia la distanță a branch-ului curent și o rebasează pe copia locală. Utilizați git rebase în loc de merge pentru a integra branch-urile.

git push

git push <remote> --force

Împingere forțată (Force push).

git push <remote> --all

Împinge toate branch-urile locale către remote-ul specificat.

git push <remote> --tags

Împinge toate tag-urile locale către repozitoriul la distanță.