Cum să anulați ultimul Git Commit

Dacă sunteți dezvoltator web sau inginer software, este foarte probabil să faceți o mulțime de comitere către Git în fiecare zi.

Cu toate acestea, în unele cazuri, ați angajat unele fișiere care nu ar trebui să fie trimise în depozitul dvs. Git.

Uneori, poate doriți să efectuați modificări suplimentare înainte de a emite commit-ul. .

În consecință, trebuie să anulați ultimul commit din depozitul dvs. Git.

În acest tutorial, vom vedea cum puteți anula cu ușurință ultimul commit, poate să comiteți din nou modificările ulterior.

Cuprins

Anulați ultimul Git Commit cu reset

Cel mai simplu mod de a anula ultimul commit Git este să executați comanda „git reset” cu opțiunea „–soft” care va păstra modificările făcute fișierelor dvs. Trebuie să specificați confirmarea de anulare care este „HEAD ~ 1” în acest caz.

Ultima confirmare va fi eliminată din istoricul dvs. Git.

Dacă nu sunteți familiarizat cu această notație, „HEAD ~ 1” înseamnă că doriți să resetați HEAD (ultimul commit) la un commit anterior din istoricul jurnalelor.

Deci, care este impactul acestei comenzi?

Comanda „git reset” poate fi văzută ca opusul comenzii „git add”, adăugând în esență fișiere la indexul Git.

Când se specifică opțiunea „–soft”, Git este instruit să nu modifice deloc fișierele din directorul de lucru sau din index.

Ca exemplu , să presupunem că ați adăugat două fișiere în cea mai recentă confirmare, dar doriți să efectuați unele modificări la acest fișier.

Prin urmare, veți utiliza „git reset” cu opțiunea „–soft” pentru a anula ultimul commit și a efectua modificări suplimentare.

După cum puteți vedea, anulând ultimul commit, fișierul este încă în index (modificările care urmează să fie confirmate), dar commit-ul a fost eliminat.

Minunat, ați anulat cu succes ultimul Git commit din depozitul dvs.

Hard Reset Git commit

În secțiunea anterioară, am văzut cum puteți anula cu ușurință ultima confirmare păstrând modificările aduse fișierelor din index.

În unele cazuri, pur și simplu doriți să scăpați de commit și de modificările aduse fișierelor.

Acesta este scopul opțiunii „–hard”.

Pentru a anula ultimul commit și a renunța la toate modificările în directorul și indexul de lucru, executați comanda „git reset” cu opțiunea „–hard” și specificați commit înainte de HEAD („HEAD ~ 1”).

Aveți grijă când utilizați „–hard”: modificările vor fi eliminate din directorul de lucru și din index, veți pierde toate modificările.

Înapoi la exemplul pe care l-am detaliat anterior, să spunem că ați trimis un fișier nou în depozitul dvs. Git numit „fișier1”.

Acum, să ne prefacem că doriți să anulați ultimul commit și să renunțați la toate modificările.

Excelent, să vedem acum starea depozitului nostru Git .

După cum puteți vedea, fișierul a fost complet eliminat din depozitul Git (index + director de lucru)

Git de resetare mixtă commit

Pentru a anula ultimul commit Git, păstrați modificările în directorul de lucru, dar NU în index, trebuie să utilizați comanda „git reset” cu opțiunea „–mixed”. Lângă această comandă, pur și simplu adăugați „HEAD ~ 1” pentru ultima comitere.

Ca exemplu, să spunem că am adăugat un fișier numit „ file1 ”într-un commit pe care trebuie să îl anulăm.

Pentru a anula ultima commit, executăm pur și simplu comanda„ git reset ”cu opțiunea„ –mixed ”.

Când se specifică opțiunea„ –mixed ”, fișierul va fi eliminat din indexul Git, dar nu din directorul de lucru.

În consecință,„ –mixed ”Este un„ mix ”între resetarea soft și hard hard, de unde și numele său.

Excelent! Ați găsit o altă modalitate de a reveni la ultima comitere, păstrând în același timp modificările aduse fișierelor.

În secțiunea următoare, vom vedea un alt mod de a reveni la ultimul commit folosind comanda git revert.

Anulați ultimul commit cu revenire

Pentru a reveni la ultimul commit Git , utilizați „git revert” și specificați commitul care urmează să fie returnat, care este „HEAD” pentru ultima commit din istoricul dvs.

Comanda „git revert” este ușor diferită de comanda „git reset” deoarece va înregistra o nouă confirmare cu modificările introduse prin revenirea la ultima validare.

Rețineți, de asemenea, că cu „git reset ”ați specificat„ HEAD ~ 1 ”deoarece comanda de resetare setează o nouă poziție HEAD în timp ce revine efectiv revine la commit specificat.

Prin urmare, va trebui să comiteți din nou modificările pentru ca fișierele a fost anulată și pentru ca validarea să fie anulată.

În consecință, să presupunem că ați trimis un nou fișier în depozitul dvs. Git, dar doriți să reveniți la acest commit.

Când executați comanda „git revert”, Git vă va deschide automat editorul de text pentru a efectua modificările.

Când ați terminat cu mesajul de confirmare, va fi afișat un mesaj cu noul hash de validare.

Acum, dacă ar fi să-ți inspectezi din nou istoricul Git, ai observa că s-a adăugat un nou commit pentru a anula ultimul commit din depozitul tău.

Concluzie

În acest tutorial, ați văzut toate modalitățile de a anula ultima comitere din depozitul dvs. Git.

Ați aflat despre „resetarea gitului” ”Și diferitele moduri de executare a acestuia, în funcție de ceea ce doriți să păstrați sau nu.

De asemenea, ați aflat despre diferența dintre comanda git reset și git revert, aceasta din urmă adăugând un nou commit în ordine. pentru a reveni la cel din depozitul dvs.

Dacă sunteți curios de Git sau de motorul software eering, avem o secțiune completă dedicată acestuia pe site, așa că asigurați-vă că o verificați!

Dacă vă place Git, s-ar putea să vă placă celelalte articole ale noastre:

  • Cum să clonezi un depozit Git
  • Cum să dezinstalezi fișierele Git
  • Cum să alegi comitetele Git
git

Write a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *