Tony ganch

git reset: întoarceți ceasul

Cele mai groaznice comenzi din resetarea git: git - hard și git push - force.
Mai ales dacă acestea se fac accidental, unul câte unul și în depozit, cu care lucrează câteva zeci de oameni.






Cum să remediem rapid situația?
Efectuați resetarea git.

Formula magică

Comandați pentru toate cazurile când trebuie să anulați ceva:

în acest caz - punctul în care doriți să vă întoarceți.

Anulați forța de apăsare git

Dacă ați făcut o împingere și ați realizat rapid că ați greșit, situația este ușor de rezolvat.
Principalul lucru nu este panica.

Ultima linie spune că înainte de împingere, ultimul comitet în expertul de la distanță a1a1a1. iar după împingere, ultimul comitet a fost b2b2b2.
Înarmat cu această cunoaștere, resetați și o altă forță-împingere, de data aceasta revenind starea anterioară a ramurii:

git push -f master de origine și git push origine + master sunt aceleași.







Dacă o faceți repede, nimeni nu va observa nimic.

Anulați resetarea git --hard

Acest truc va funcționa numai pentru modificările pre-ambalate.

Se întâmplă că cei doi din ultimii angajați în ramură sunt de prisos.
Tu faci o resetare git - HEAD HEAD

3. dar ștergeți accidental o comisie suplimentară.
Nimic nu a început pe server, nu există unde să facă git pull.
Ce ar trebui să fac?
Open reflog:

Sarcina dvs. este să găsiți în acest jurnal punctul la care doriți să reveniți.
În cazul nostru, dorim să anulați ultima acțiune, adică să reveniți la a doua linie.
Efectuați o resetare șiretlică:

Voila, resetare nereușită - greu, așa cum nu sa întâmplat niciodată.
Ce am făcut?

git reset --hard HEAD @ literalmente înseamnă: "Hay, git, arată-mi fișierele în forma în care au fost 1 acțiune înapoi."
Rețineți că acțiunea se referă la înregistrarea în reflog. De exemplu, dacă faceți resetarea git -i HEAD

6. În funcție de ceea ce faceți în timpul ribozei, în jurnal pot apărea cel puțin 20 de intrări noi.
Și fiecare dintre ele poate fi utilizată pentru resetare.

În loc de HEAD @, puteți utiliza instrucțiuni mai complexe, de exemplu:

Anulați reintroducerea git -i

Prin același principiu, puteți anula rebizia recentă:

Căutăm un comitet înainte de checkout și reluăm:







Trimiteți-le prietenilor: