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 statusListează ce fișiere sunt în staging, ce fișiere nu sunt în staging și ce fișiere nu sunt urmărite.
git logAfișează întregul istoric al commit-urilor folosind formatul implicit.
git diffCompară 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 -nArată 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 --amendModifică 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 reflogPermite vizualizarea tuturor înregistrărilor operațiunilor tuturor branch-urilor (inclusiv înregistrările de commit șterse și operațiunile de reset).
Branch-uri Git
git branchListează 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 --editDeschide 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 --onelineAfișează istoricul commit-urilor, comprimând fiecare commit pe o singură linie.
git log -pAfișează istoricul commit-urilor și diff-ul complet pentru fiecare commit.
git log --statAfiș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 HEADCompară diferențele dintre directorul de lucru (care nu a fost încă adăugat cu git add) și repozitoriu (după git commit).
git diff --cachedCompară diferențele dintre zona de staging (după git add) și repozitoriu (după git commit).
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 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ță.