În ultimii câțiva ani, Git a devenit o parte implicită a stivei de cunoștințe a fiecărui dezvoltator. Dar, chiar dacă Git este atât de cunoscut, există multe Git comenzi care nu sunt.

În această scurtă postare, aș dori să vă arăt șapte mici comenzi care vă pot ajuta să deveniți mai productivi și mai versați cu Git. Hai să ne scufundăm.

Aflarea a ceea ce s-a schimbat într-un fișier

A fi la curent cu lucrurile poate fi greu – mai ales dacă mulți oameni lucrează pe aceeași bază de cod.

Pentru a vă ajuta să înțelegeți exact Cum (precum și cand și de cine) a fost schimbat un fișier, puteți folosi vechiul bun git log comanda – dar cu puțin condiment:

$ git log --since="3 weeks" -p index.html

Utilizarea „-p” vă asigură că vedeți modificările reale ca diferențe (și nu numai metadatele de comitere). Iar opțiunea „–de când” vă ajută să intrați într-un interval de timp recent.

Anularea ultimului dvs. angajament în stil

Uneori credem că o mulțime de modificări sunt pregătite pentru comitere – dar imediat după efectuarea comiterii, observăm că am fost prea rapide.

Modificări ar putea lipsi, am fi putut atinge ramura greșită sau s-ar fi putut întâmpla o multitudine de alte probleme …

Singurul lucru cert: am dori să anulăm acest ultim commit și să recuperăm modificările în copia noastră de lucru!

Putem folosi git reset comanda cu un set special de opțiuni:

$ git reset --mixed HEAD~1

Opțiunea „–mixed” asigură faptul că modificările conținute în comitetele care sunt resetate NU sunt eliminate. În schimb, acestea sunt păstrate ca modificări locale în copia de lucru.

Folosirea notării „HEAD ~ 1” este o comandă rapidă excelentă pentru a specifica „commit înainte de cea mai recentă” – exact ceea ce ne dorim pentru a anula ultimul commit.

Simțiți-vă liber să citiți mai multe despre acest subiect în cum se anulează ultima comitere.

Aflarea diferenței dintre fișiere într-o altă ramură

După ce ați făcut câteva modificări într-un fișier dintr-o ramură de caracteristici, vă recomandăm să o comparați cu aspectul unei alte ramuri. Pentru a face un exemplu concret, să spunem …

  • vă aflați în prezent în ramura „caracteristică / autentificare” și …
  • vreau să înțeleg modul în care fișierul „myFile.txt” aici …
  • este diferit de versiunea sa din ramura „develop”.

git diff comanda poate face acest lucru dacă furnizați următorii parametri:

$ git diff develop -- myFile.txt

Veți vedea apoi o diferență clară și frumoasă, care arată cât de exact diferă fișierul dvs. de versiunea sa din cealaltă ramură.

Folosind „comutați” în loc de „plătiți”

git checkout comanda are o multitudine de sarcini și semnificații diferite. De aceea, destul de recent, comunitatea Git a decis să publice o nouă comandă: git switch. După cum sugerează și numele, a fost creat special pentru sarcina de a schimba ramurile:

$ git switch develop

După cum puteți vedea, utilizarea sa este foarte simplă și similară cu „git checkout”. Dar avantajul imens față de comanda „checkout” este că „switch” NU are un milion de alte semnificații și capacități.

Deoarece este un membru destul de nou al familiei de comenzi Git, ar trebui să verificați dacă instalarea dvs. Git o include deja.

Comutați înapoi și înainte între două ramuri

În unele scenarii, ar putea fi necesar să comutați în mod repetat între două ramuri. În loc să scrieți întotdeauna numele sucursalelor în întregime, puteți utiliza pur și simplu următoarea comandă rapidă:

$ git switch -

Folosind caracterul de liniuță ca singurul său parametru, comanda „git switch” va verifica anterior ramură activă. După cum sa spus, acest lucru poate fi foarte util dacă trebuie să mergeți înainte și înapoi între două ramuri de o grămadă de ori.

Folosind „git restore” pentru a anula modificările locale

Până nu demult, trebuia să folosiți o formă de git checkout sau git reset când ai vrut să anulezi modificările locale.

Dar cu (relativ nou) git restore comandă, acum avem o comandă care a fost făcută exact în acest scop. Acest lucru îl diferențiază de „checkout” și „reset”, deoarece acele comenzi au o mulțime de alte cazuri de utilizare.

Iată o prezentare rapidă a celor mai importante lucruri pe care le puteți face cu „git restore”:

# Unstaging a file, but leaving its actual changes untouched
$ git restore --staged myFile.txt

# Discarding your local changes in a certain file
$ git restore myFile.txt

# Undoing all of the local changes in the working copy (be careful)
$ git restore .

Restaurarea unei versiuni istorice a unui fișier

git restore comanda oferă o altă opțiune foarte utilă numită „–source”. Cu ajutorul acestei opțiuni, puteți restabili cu ușurință orice versiune anterioară a unui anumit fișier:

$ git restore --source 6bcf266b index.html

Pur și simplu menționați hash-ul de revizuire al versiunii pe care doriți să o restaurați (și numele fișierului, desigur).

Dacă aveți nevoie de ajutor constatare revizuirea corectă, puteți utiliza un client Git desktop ca Tower: cu o caracteristică precum „Istoricul fișierelor”, puteți inspecta cu ușurință doar modificările care au avut loc într-un anumit fișier – și apoi puteți selecta o revizie pentru restaurare.

Descoperiți Puterea lui Git

Deși Git este atât de cunoscut în zilele noastre, o mare parte din puterea sa este încă necunoscută publicului. Este adevărat că poți „supraviețui” doar cu câteva comenzi precum commit, push și pull. Dar este ca și cum ai conduce un Ferrari doar în prima treaptă!

Dacă sunteți dispus să vă scufundați puțin mai adânc, veți descoperi câteva dintre caracteristicile mai puternice ale Git. Și acestea au potențialul de a vă face nu numai mai productivi, ci și – în cele din urmă – un dezvoltator mai bun!

Dacă doriți să aflați mai multe despre Git, vă recomand să aruncați o privire la următoarele gratuit resurse:

Despre autor

Tobias Günther este CEO al Turn, popularul client desktop Git care ajută peste 100.000 de dezvoltatori din întreaga lume să fie mai productivi cu Git.