Skip to content

Listă rapidă de comenzi Git

Git este un sistem de control al versiunilor distribuit, open-source, conceput pentru a gestiona de la proiecte mici la proiecte foarte mari cu viteză și eficiență. Git a fost dezvoltat de Linus Torvalds pentru a ajuta la gestionarea dezvoltării kernel-ului Linux.

Noțiuni de bază Git

git init <directory>

Creează un repozitoriu Git gol în directorul specificat. Fără argumente, inițializează directorul curent.

git clone <repo>

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

git config user.name <name>

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

git add <directory>

Adaugă conținutul modificat în <directory> pentru următorul commit (staging).

git commit -m "<message>"

Efectuează commit pentru snapshot-ul din staging, folosind <message> ca mesaj de commit.

git status

Listează fișierele care sunt în staging, cele ne-staged și cele ne-urmărite.

git log

Afișează întreaga istorie a commit-urilor în formatul implicit.

git diff

Compară diferențele dintre directorul de lucru și zona de staging.

Anularea modificărilor

git revert <commit>

Creează un nou commit care anulează toate modificările făcute în <commit> și le aplică pe branch-ul curent.

git reset <file>

Șterge <fișierul> din zona de staging, dar păstrează directorul de lucru neschimbat. Acest lucru anulează staging-ul fișierului fără a suprascrie nicio modificare.

git clean -n

Afișează ce fișiere vor fi șterse din directorul de lucru. Folosiți flag-ul -f în loc de -n pentru a executa curățarea.

Rescrierea istoriei Git

git commit --amend

Modifică cel mai recent commit. Dacă există modificări în staging, acestea vor fi incluse în commit-ul modificat.

git rebase <base>

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

git reflog

Permite vizualizarea tuturor înregistrărilor de operațiuni pentru toate branch-urile (inclusiv commit-urile șterse și operațiunile de reset).

Branch-uri Git

git branch

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

git checkout -b <branch>

Creează și comută pe un nou branch numit <branch>. Omiteți -b pentru a comuta 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ăugare, puteți folosi <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 de la distanță a branch-ului curent și o fuzionează imediat cu copia locală.

git push <remote> <branch>

Trimite branch-ul către <remote>, împreună cu commit-urile și obiectele necesare. Dacă repozitoriul de la distanță nu există, creează branch-ul în acesta.

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 adresa de email a 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> intrări din istoria commit-urilor.

git log --oneline

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

git log -p

Afișează istoria commit-urilor cu diferențele (diff) complete pentru fiecare commit.

git log --stat

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

git log --author="<pattern>"

Caută commit-uri ale unui anumit autor.

git log --grep="<pattern>"

Caută în istoria commit-urilor folosind expresii regulate (regex).

git log <since>..<until>

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

git log -- <file>

Afișează doar intrările de commit care includ fișierul specificat.

git diff

git diff HEAD

Compară diferențele de fișiere între directorul de lucru și repozitoriu (după git commit).

git diff --cached

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

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.

git reset <commit>

Mută vârful branch-ului curent înapoi la <commit> și resetează zona de staging, fără a schimba directorul de lucru.

git reset --hard <commit>

La fel ca mai sus, dar resetează și directorul de lucru. Șterge modificările ne-comise și toate commit-urile de după <commit>.

git pull

git pull --rebase <remote>

Preia copia de la distanță și efectuează rebase (în loc de merge) pentru copia locală.

git push

git push <remote> --force

Trimite modificările forțat (force push).

git push <remote> --all

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

git push <remote> --tags

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