Ca software pentru controlul versiunilor, Git facilitează, în mod previzibil, anularea modificărilor. Dar chiar și conceptul de a anula o schimbare este mai complicat decât ai putea crede la început. Un depozit Git nu este chiar același lucru cu setul de fișiere la care lucrați local. Anularea modificărilor înseamnă să vă gândiți exact unde doriți să le anulați.

gitverifică, git reset, și gitrestabili sunt comenzi care vă pot ajuta să reveniți la o versiune anterioară nu doar a bazei de cod, ci și a fișierelor individuale. Cunoașteți detaliile acestor comenzi și veți sări peste istoricul fișierelor ca un expert în cel mai scurt timp.

Oricum, ce înseamnă resetarea unui fișier?

Este important să rețineți că resetarea unui fișier poate însemna lucruri diferite pentru diferiți oameni în diferite circumstanțe. De asemenea git reset este posibil ca comanda să nu corespundă așteptărilor dumneavoastră cu privire la ceea ce înseamnă resetarea.

Uneori, veți dori să anulați modificările locale, astfel încât un fișier să fie din nou sincronizat cu depozitul curent. În alte ocazii, este posibil să doriți să anulați modificările pe care le-ați comis deja în depozit.

instagram viewer

Următorii termeni sunt cheie pentru înțelegerea diferenței: arbore de lucru, zonă de punere în practică și depozit. Fișierele pe care le editați local aparțin arborelui de lucru. Fișierele pe care le comiteți ajung în cele din urmă în depozit. Când sunteți în proces de adunare a modificărilor, puneți în scenă fișierele. Un fișier poate avea conținut diferit în fiecare dintre aceste locații.

Vezi si: Tutorial avansat Git

S-ar putea să vă gândiți la resetarea unui fișier ca la anularea modificărilor. Dar starea fișierului dvs. va determina ce modificări anulați de fapt. Cazul evident este atunci când faceți unele modificări, le comiteți, apoi decideți că nu le mai doriți.

Un alt caz ar putea fi acela că ați pus în scenă un fișier și acum doriți să-l anulați.

Cum derulez înapoi un fișier comis anterior?

Să ne ocupăm de un caz mai ușor de înțeles: ați comis un fișier și acum doriți să anulați modificările aduse acestuia.

Comanda Git pentru a face acest lucru este, oarecum neintuitiv, numită verifică. S-ar putea să fi folosit verifică înainte de a schimba ramurile, dar aceasta este o mică parte din ceea ce poate face comanda. De asemenea, vă permite să actualizați fișierele din arborele de lucru pentru a se potrivi cu cele în orice moment din istoricul depozitului. Puteți face acest lucru pentru o anumită etichetă, ramură sau chiar pentru un anumit commit.

Cea mai utilă formă, cu scop general, a acestei comenzi este:

git checkout [commit ID] -- cale/către/fișier

Aici, trecem pe o anumită cale (cale/spre/fișier) care identifică doar un singur fișier. De asemenea, specificăm un ID de comitere pentru a obține fișierul așa cum a existat la acel comit specific. Această comandă va actualiza fișierul numai în arborele nostru de lucru.

Rețineți că verificarea unei versiuni anterioare a fișierului modifică copia de lucru, fără comiterea sau chiar montarea acesteia. Pentru a finaliza complet anularea în depozit, va trebui să puneți în scenă fișierul și să creați un nou commit.

Vezi si: Cum să inspectați istoricul unui proiect cu git log

Cum schimb ceea ce pun în scenă?

Celălalt tip de anulare implică zona ta de amenajare. Acesta conține modificările pe care le veți efectua lângă depozit. Dacă ați pus în scenă o versiune a unui fișier și ulterior decideți că nu doriți să o includeți în următoarea comitere, veți dori să o anulați mai întâi.

Puteți folosi git reset comandă pentru a dezactiva un fișier în etape:

git resetează calea/către/fișierul HEAD

Pot anula rapid modificările locale?

Da, puteți anula modificările aduse unui fișier local înainte ca acesta să fie pus în scenă. Utilizați următoarea comandă:

git checkout -- cale/către/fișier

Rețineți că acest lucru este similar cu anularea unei modificări din depozit, omite pur și simplu ID-ul de comitere. Odată ce executați această comandă, Git va anula orice modificări aduse copiei dvs. de lucru.

Dar git restore?

Versiunile ulterioare de Git au o comandă mai nouă: restabili. Pentru cazurile simple pe care le-am discutat aici, puteți folosi următoarele echivalente. Pentru a anula o modificare a depozitului:

git restore --source [commit id] cale/la/fișier

Pentru a dezactiva un fișier, utilizați:

git restore --staged path/to/file

Și pentru a anula modificările de copiere de lucru:

git restore calea/la/fișierul

Stăpânirea puterii de versiuni a lui Git este neprețuită

Deși resetarea unui fișier poate părea un lucru obișnuit, veți descoperi că se întâmplă destul de rar în practică. Este mai probabil să anulați comiterile întregi, mai degrabă decât fișierele individuale. Cu toate acestea, în cazurile în care trebuie să faceți acest lucru, Git o face cel puțin destul de simplă.

Cum să eliminați un fișier din Commit în Git

Utilizați aceste comenzi Git pentru a efectua operațiuni precum eliminarea unui fișier dintr-un commit.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Programare
  • GitHub
  • Dezvoltare web
  • Programare
Despre autor
Bobby Jack (63 articole publicate)

Bobby este un pasionat de tehnologie care a lucrat ca dezvoltator de software timp de cele mai multe două decenii. Este pasionat de jocuri, lucrând ca redactor-șef la Switch Player Magazine și este cufundat în toate aspectele publicării online și dezvoltării web.

Mai multe de la Bobby Jack

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona