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 mainramură, probabil că vă vine în minte folosirea git mergecomenzii. 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ă.

Learn Top 10 popular GitOps advanced commands.
folosind git merge

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

Learn Top 10 popular GitOps advanced commands.
git rebase

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 rebasecomanda 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 grepcomanda, care vă ajută să căutați un anumit șir în interiorul tuturor commit-urilor (întregul istoric al proiectului).

Git Grep

git grepeste 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:

gitops advanced commands
căutând cuvântul blockchain

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-listo 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-listpoate 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 OPTIONSeste 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-listcomanda î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 xargseste 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:

Learn Top 10 popular GitOps advanced commands.
cautand cuvantul “test”

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 logcomanda. 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.

Learn Top 10 popular GitOps advanced commands.
git log

Observați că fiecare commit include un unic sha-idcreat de algoritmul SHA. Include, de asemenea datetimeauthor, și alte informații.

Puteți parcurge istoricul jurnalului apăsând tasta kpentru a vă deplasa în sus și jtasta pentru a vă deplasa în jos. Apăsați qpentru a ieși.

De asemenea, puteți vizualiza jurnalele dvs. ca un grafic doar adăugând --graphopțiunea:

>_git log --graph
romanian top 10 gitops advanced commands
git log grafic

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 
Learn Top 10 popular GitOps advanced commands.
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
top 10 gitops advanced commands
diferența dintre două ramuri

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
gitops advanced commands
diferența dintre două comite

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 reflogse referă la jurnalele de referință.

Git Log vs Git Reflog

Spre deosebire de git logcomanda care oferă un istoric al modificărilor la conținutul depozitului, comanda git reflogoferă 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 refloginformaț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
Learn Top 10 popular GitOps advanced commands.
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 revertnu ș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 pruneelimină 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 stashvă 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 -asteag 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
Learn Top 10 popular GitOps advanced commands.
lista de etichete

Git Clean – GitOps advanced commands for daily usage

Puteți folosi git cleancomanda 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 -fsau -nflag 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 cleanfără semnalizări, este posibil să vedeți un mesaj de eroare ca acesta:

Learn Top 10 popular GitOps advanced commands.
mesaj de eroare

Să aruncăm o privire mai atentă la unele dintre aceste steaguri folosite alături de git clean:

git clean -n

git clean -n-nIndicatorul 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 -nsteagul:

>_git clean -n
Learn Top 10 popular GitOps advanced commands.
git curat uscat

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 -fsteag`:

>_git clean -f

Iată o captură de ecran a rezultatului:

Learn Top 10 popular GitOps advanced commands.
git clean force

Comanda șterge forțat text.txtfiș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 -dsteagul:

>_git clean -f -d
Learn Top 10 popular GitOps advanced commands.
directoarele git clean force

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.

You may also like...