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 statusListează fișierele care sunt în staging, cele ne-staged și cele ne-urmărite.
git logAfișează întreaga istorie a commit-urilor în formatul implicit.
git diffCompară 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 -nAfiș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 --amendModifică 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 reflogPermite vizualizarea tuturor înregistrărilor de operațiuni pentru toate branch-urile (inclusiv commit-urile șterse și operațiunile de reset).
Branch-uri Git
git branchListează 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 --editDeschide 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 --onelineAfișează istoria commit-urilor comprimând fiecare commit pe o singură linie.
git log -pAfișează istoria commit-urilor cu diferențele (diff) complete pentru fiecare commit.
git log --statAfiș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 HEADCompară diferențele de fișiere între directorul de lucru și repozitoriu (după git commit).
git diff --cachedCompară diferențele între zona de staging (după git add) și repozitoriu.
git reset
git resetResetează zona de staging pentru a corespunde celui mai recent commit, dar păstrează directorul de lucru neschimbat.
git reset --hardResetează 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> --forceTrimite modificările forțat (force push).
git push <remote> --allTrimite toate branch-urile locale către remote-ul specificat.
git push <remote> --tagsTrimite toate tag-urile locale către repozitoriul la distanță.