Learn Top 10 popular GitOps advanced commands.
Pentru mulți dezvoltatori, valorificarea cu adevărat a puterii Git poate fi o sarcină descurajantă. GitOps advanced commands poate părea intimidant atunci când începeți să îl utilizați. Acesta este unul dintre motivele pentru care majoritatea dezvoltatorilor se limitează la utilizarea comenzilor standard push, pull și merge.
Cu toate acestea, de-a lungul anilor, Git a apărut ca instrument standard pentru controlul versiunilor datorită cât de puternic este. Deci, dacă utilizați Git în mod regulat, atunci vă puteți îmbunătăți considerabil fluxul de lucru învățând unele dintre aceste funcții avansate.
În acest articol, voi discuta zece comenzi Git avansate pe care fiecare dezvoltator ar trebui să le cunoască.
Git Rebase – GitOps advanced commands
Dacă doriți să îmbinați toate commit-urile într-o ramură de caracteristică la main
ramură, probabil că vă vine în minte folosirea git merge
comenzii. Acest lucru va lua toate modificările din ramura prezentată și le va introduce într-un singur comit de îmbinare și apoi va pune acel comit de îmbinare în ramura principală. După ce aceste modificări sunt combinate în acea comitere de îmbinare, pare împrăștiată, mai ales când aveți o grămadă de oameni care lucrează la ramura prezentată și fac modificări aproape de fiecare dată.

Comanda git rebase ne poate rezolva asta. Îți ia toate commit-urile dintr-o ramură prezentată și le mută deasupra commit-ului principal.

Un mare avantaj este că vă urmărește cu ușurință comenzile în interiorul ramurii principale.
>_git rebase <base>
Ar trebui să utilizați git rebase
comanda pentru a consolida într-o singură ramură atunci când aveți mai multe ramuri private. Și va afișa istoricul comitării într-o formă liniară. Într-o istorie liniară, este ușor să vezi progresul modificărilor, deoarece toate sunt aplicate una după alta, fără ramuri sau comite de îmbinare. Acest lucru poate face mai ușor de înțeles cum a evoluat codul în timp.
În plus, un istoric liniar poate facilita depistarea erorilor, deoarece puteți vedea mai ușor când a fost introdusă o anumită modificare. De asemenea, poate facilita anularea modificărilor, deoarece pur și simplu puteți anula o singură comitere, mai degrabă decât să vă ocupați de complexitatea îmbinării ramurilor.
Căutarea unui Git Repo – GitOps advanced commands
Ți-ai dorit vreodată să cauți un șir în istoricul depozitului tău? Ei bine, puteți face asta acum cu grep
comanda, care vă ajută să căutați un anumit șir în interiorul tuturor commit-urilor (întregul istoric al proiectului).
Git Grep
git grep
este un instrument util pentru căutarea rapidă prin baza de cod a unui depozit Git pentru a găsi căutări de informații specifice prin fișierele urmărite în ramura curentă a unui depozit Git și returnează o listă de linii care se potrivesc cu modelul specificat. Poate fi folosit pentru a căuta fragmente de cod, apeluri de funcții sau anumite șiruri de text.
Pentru a căuta prin fișierele din directorul de lucru (starea curentă a proiectului), puteți utiliza
git grep
:
>_git grep STRING
Iată un exemplu de căutare a cuvântului „blockchain” într-un depozit web3:
>_git grep blockchain
Iată rezultatul:

Git Rev-List – also an GitOps advanced commands
De asemenea, puteți efectua căutări complexe adăugând lista git rev-list. Pentru a înțelege cum să faceți acest lucru, să aruncăm o scurtă privire asupra git rev-list
Este git rev-list
o comandă Git folosită pentru a lista revizuirile dintr-un depozit Git. Acesta oferă o listă a tuturor obiectelor de comit din depozit, inclusiv hash-ul de comitere, autorul, data și mesajul, sortate în ordine cronologică inversă. Ieșirea comenzii git rev-list
poate fi utilizată pentru a afișa istoricul comitărilor, a urmări progresul unui depozit Git de-a lungul timpului sau pentru a efectua diverse operațiuni asupra comitărilor.
>_git rev-list [OPTIONS] [<revision ranges>]
Aici OPTIONS
este o listă de parametri opționali care controlează rezultatul comenzii git rev-list și <revision ranges>
este o listă de revizuiri pe care doriți să le enumerați.
De exemplu, pentru a lista toate revizuirile din depozit, puteți rula:
>_git rev-list --all
Pentru a enumera revizuirile accesibile din ramura curentă, puteți rula:
>_git rev-list HEAD
Pentru a lista revizuirile dintre două ramuri, puteți rula:
>_git rev-list branch1..branch2
Puteți utiliza git rev-list
comanda în combinație cu alte comenzi Git, cum ar fi xargs și git grep, pentru a efectua căutări mai complexe.
>_
git rev-list –all | xargs git grep -F '<your string>'
Utilizarea xargs
este utilă în acest caz, deoarece preia rezultatul comenzii git rev-list
, care este o listă a tuturor revizuirilor din depozitul Git, și transmite fiecare revizuire ca argument la comandă git grep
, astfel încât conținutul fiecărei revizuiri poate fi căutat pentru șirul specificat.
Trebuie doar să înlocuiți <your string>
cu șirul pe care doriți să îl căutați:
>_
git rev-list --all | xargs git grep -F 'test'
Aceasta va căuta cuvântul „test” și va afișa rezultatele.
Iată rezultatul:

Jurnal Git – GitOps advanced commands
Comanda git log
este una dintre cele mai utile comenzi Git cu care ar trebui să fii familiarizat. Când trebuie să vă uitați la istoricul de comitere, utilizați git log
comanda. Comanda git log afișează cele mai recente comiteri, precum și starea curentă a HEAD.
>_git log
În imaginile de mai jos, puteți vedea un jurnal sau istoric al comitărilor făcute până acum.

Observați că fiecare commit include un unic sha-id
creat de algoritmul SHA. Include, de asemenea date
, time
, author
, și alte informații.
Puteți parcurge istoricul jurnalului apăsând tasta k
pentru a vă deplasa în sus și j
tasta pentru a vă deplasa în jos. Apăsați q
pentru a ieși.
De asemenea, puteți vizualiza jurnalele dvs. ca un grafic doar adăugând --graph
opțiunea:
>_git log --graph

Git Diff
Este utilă compararea modificărilor pe care le-ați făcut între două fișiere sau ramuri înainte de a le efectua sau de a împinge, deoarece vă permite să revizuiți modificările și să vă asigurați că sunt gata pentru a fi partajate altora. Acest lucru vă poate ajuta să detectați greșelile sau modificările neintenționate înainte ca acestea să fie trimise în depozit, ceea ce poate economisi timp și reduce riscul de a introduce probleme.
Din fericire, cu git diff , puteți face asta. Vă permite să vedeți ce s-a schimbat între două ramuri, comiteri și fișiere.
Git Diff pentru a compara fișierele
Pentru a verifica directorul de lucru cu depozitul local:
>_git diff

Aceasta va arăta diferențele dintre fișierul la care lucrați în prezent și versiunea din ultima comitere. Ieșirea va afișa o listă de modificări, cu linii adăugate sau modificate evidențiate în verde.
Git Diff pentru a compara ramurile
Pentru a vedea diferențele dintre două ramuri:
>_git diff branch1 -- branch2

Aceasta va arăta diferențele dintre cele două ramuri specificate. Ieșirea va afișa o listă de modificări pentru fiecare fișier care are diferențe între cele două ramuri, cu linii adăugate sau modificate evidențiate în verde.
Git Diff pentru a compara comiterile
Pentru a vedea diferențele dintre două comite-uri specifice:
>_git diff commit1 commit2

Aceasta va arăta diferențele dintre commit1
și commit2
. Ieșirea va afișa o listă de modificări pentru fiecare fișier care are diferențe între cele două comiteri, cu liniile care au fost adăugate sau modificate evidențiate în verde.
Git Reflog
Reflog este o altă comandă simplă, dar utilă. Termenul reflog
se referă la jurnalele de referință.
Git Log vs Git Reflog
Spre deosebire de git log
comanda care oferă un istoric al modificărilor la conținutul depozitului, comanda git reflog
oferă un istoric al tuturor actualizărilor referințelor dintr-un depozit Git.
Această comandă afișează cele mai recente comiteri, trageri, resetări, împingeri și așa mai departe mașina dvs. locală. Vă permite să reveniți la orice commit, chiar dacă o ramură sau o etichetă nu face referire la aceasta.
Reține reflog
informații despre starea anterioară a filialelor și permite restabilirea acestora dacă este necesar. Aceasta este o metodă excelentă pentru a urmări orice probleme, cum ar fi comiterile pierdute, problemele de depanare etc., care ar fi putut apărea și pentru a determina ce ați făcut pentru a provoca aceste probleme.
>_git reflog

Git Revert
Comanda inversă vă permite să anulați modificările aduse istoricului de comitere a unui depozit în ramura curentă.
Pentru a utiliza git revert
, pur și simplu dați comanda pe care doriți să o inversați la comandă și va anula toate modificările făcute de la acea comitere.
>_git revert <commit id>
Un lucru de reținut este că acest lucru anulează doar modificările din acel comitere specific. Dacă reveniți la un comit vechi de o lună, nu va elimina nicio modificare făcută de la acel moment. Va anula doar modificările făcute în respectivul commit.
Un alt lucru de reținut este că utilizarea git revert
nu șterge cu adevărat comiterea anterioară. În schimb, generează un nou commit care anulează toate modificările făcute în commit-ul precedent. Acest lucru este benefic, deoarece păstrează istoricul depozitului dvs.
De asemenea, puteți utiliza acest lucru dacă doriți să anulați cea mai recentă confirmare:
>_git revert HEAD
Git Prune
git prune
elimină obiectele învechite sau latente dintr-un depozit git. Obiectul învechit poate fi o ramură sau o etichetă care este ștearsă sau un commit care este modificat sau rebazat. În Git, un obiect învechit devine fără referință și inaccesibil.
Git prune acționează ca un coș de gunoi pentru datele neutilizate din istoricul depozitului git. Această funcție este un descendent al comenzii de colectare a gunoiului și nu este executată imediat. Comanda git garbage collection ( gc
) este responsabilă de menținerea în viață a unui depozit. Curățește toată dezordinea dintr-un depozit și o menține curată.
>_
git prune < --dry-run>| <-v> | <--progress> \
|<--expire <time> |<-- > |<head>…
--dry-run
: nu execută prune, ci mai degrabă listează ceea ce va elimina-v (--verbose)
: afișează rezultatul datelor și acțiunilor tăiate--progress
: afișează rezultatul care indică progresul prunei--expire <time>
: precizează când vor expira obiectele irosite<head>…
: specifică opțiunile la care se face referire din capul commit-ului
Git Stash
git stash
vă permite să salvați temporar modificările pe care le-ați făcut copiei de lucru, astfel încât să puteți trece la o altă ramură, să introduceți modificări în amonte și să reveniți la ramura originală, moment în care puteți aplica modificările salvate.
Funcționează păstrând sau salvând toate modificările necommitate, în același timp curățănd arborele de lucru. Stashingul este util pentru tine dacă trebuie să te îndepărtezi de ceea ce faci, să zicem să remediezi o eroare urgentă, dar nu ești pregătit să comiți ceea ce ai făcut până acum.
>_git stash
Această comandă simplă salvează toate modificările de cod, dar nu le comite. În schimb, le salvează local pe computer. Când sunteți gata să continuați, puteți extrage modificările din depozit cu această comandă de mai jos:
>_git stash pop
Git Tag – Your best GitOps advanced commands
Etichetele sunt referințe care indică anumite comiteri. Etichetarea este utilizată în general pentru a captura un punct din istorie care este utilizat pentru o versiune marcată (adică v1.0.0). În mod implicit, etichetele nu sunt tranzitive, ceea ce înseamnă că nu se mișcă atunci când sunt adăugate noi comite. Un Git Tag este similară cu o ramură care nu se va schimba, deși, spre deosebire de ramuri, etichetele nu mai au istoric de comitere după ce sunt stabilite.
>_git tag <tagname>
De exemplu, dacă doriți să creați o nouă etichetă numită v1.0.0, puteți utiliza următoarea comandă:
>_git tag v1.0.0
Aceasta va crea o nouă etichetă la comiterea curentă. Dacă doriți să creați o etichetă pentru un anumit commit, puteți specifica hash-ul commit:
>_git tag v1.0.0 <commit hash>
De asemenea, puteți utiliza -a
steag pentru a adnota eticheta cu un mesaj:
>_git tag -a v1.0.0 -m "Release version 1.0.0"
Pentru a împinge etichetele într-un depozit de la distanță, puteți utiliza comanda git push cu steag --tags
:
>_git push --tags
Acest lucru va împinge toate etichetele dvs. locale în depozitul de la distanță. Pentru a vedea lista de etichete pe care le-ați creat în depozitul dvs.:
>_git tag --list

Git Clean – GitOps advanced commands for daily usage
Puteți folosi git clean
comanda pentru a trata fișierele neurmărite. Funcționează diferit de git checkout
și git reset
, care funcționează pe fișierele care au fost deja adăugate la indexul de urmărire Git. Această comandă elimină toate fișierele neurmărite din directorul de lucru.
>_git clean
Comanda git clean vă cere să utilizați fie -f
sau -n
flag atunci când o executați. Dacă nu utilizați niciunul dintre aceste steaguri, comanda va eșua cu un mesaj de eroare similar cu „no f’s given”. De exemplu, dacă încercați să rulați git clean
fără semnalizări, este posibil să vedeți un mesaj de eroare ca acesta:

Să aruncăm o privire mai atentă la unele dintre aceste steaguri folosite alături de git clean
:
git clean -n
git clean -n
: -n
Indicatorul este folosit pentru a afișa o rulare uscată a comenzii, ceea ce înseamnă că va afișa fișierele și directoarele care ar fi eliminate, dar de fapt nu le va elimina.
Iată un exemplu, folosind -n
steagul:
>_git clean -n

După cum putem vedea, afișează fișierul care ar fi eliminat.
git clean -f
git clean -f
: Acest indicator este folosit pentru a forța eliminarea fișierelor și directoarelor neurmărite din depozitul dvs. Git.
Iată un exemplu, folosind -f
steag`:
>_git clean -f
Iată o captură de ecran a rezultatului:

Comanda șterge forțat text.txt
fișierul
git clean -f -d
git clean -f -d
: Această combinație de steaguri va elimina cu forță directoarele neurmărite din depozitul dvs. Git, dar nu va elimina niciun fișier neurmărât.
Iată un exemplu, folosind -f
-d
steagul:
>_git clean -f -d

Comanda elimină cu forță directoarele neurmărite din exemplul nostru.
Concluzie
Git este un instrument de colaborare foarte puternic. Dacă tot ce înveți este să împingi, să tragi și să îmbini, poți să mergi departe. Dar stăpânirea Git merită efortul. Vă poate crește productivitatea și vă poate îmbunătăți calitatea colaborărilor cu alți dezvoltatori.
Comenzile abordate în acest tutorial sunt doar începutul. Mai sunt multe. Poate doriți să verificați aliasurile Git și git bisect sau să aflați mai multe despre ce este de fapt DevSecOps.