Git

Git Kako poništiti posljednje urezivanje?

Git Kako poništiti posljednje urezivanje?
Git je učinkovit alat koji prati vaš kôd. A jedna od sjajnih značajki alata je ta da možete lako provjeriti svoju povijest i vratiti se nazad ako ste pogriješili. Stvorimo situaciju u kojoj možete poništiti posljednje urezivanje i vidjeti kako funkcionira naredba Git revert.

Krenut ćemo s dodavanjem nekoliko datoteka. Pri posljednjem urezivanju dodavat ćemo i brisati datoteke kako bismo stvorili neurednu situaciju. Tada ćemo se vratiti u stanje prije kaosa.

Možete stvoriti mapu koja se zove / test i pokrenuti sljedeće naredbe za inicijalizaciju Gita i stvaranje gore opisane situacije (Namjerno radimo odvojene predaje kako bismo stvorili povijest):

$ git init
Inicijalizirano prazno Git spremište u / Users / zakh_eecs / _work / LearnGIT / git_revert / test /.git /
$ echo x> datoteka_1.txt
$ git dodaj -A
$ git commit -m "Dodavanje datoteke_1.txt "
[master (root-commit) 08caf5d] Dodavanje datoteke_1.txt
1 datoteka promijenjena, 1 umetanje (+)
način stvaranja 100644 datoteka_1.txt
$ echo y> file_2.txt
$ git dodaj -A
$ git commit -m "Dodavanje datoteke_2.txt "
[master ba18a2f] Dodavanje datoteke_2.txt
1 datoteka promijenjena, 1 umetanje (+)
način stvaranja 100644 datoteka_2.txt
$ echo z> datoteka_3.txt
$ git dodaj -A
$ git commit -m "Dodavanje datoteke_3.txt "
[master 97f09ad] Dodavanje datoteke_3.txt
1 datoteka promijenjena, 1 umetanje (+)
stvoriti način rada 100644 file_3.txt
$ echo u> datoteka_4.txt
$ git dodaj -A
$ git commit -m "Dodavanje datoteke_4.txt "
[master 9caf084] Dodavanje datoteke_4.txt
1 datoteka promijenjena, 1 umetanje (+)
način stvaranja 100644 datoteka_4.txt
$ echo v> datoteka_5.txt
$ git dodaj -A
$ git commit -m "Dodavanje datoteke_5.txt "
[master 3f228b2] Dodavanje datoteke_5.txt
1 datoteka promijenjena, 1 umetanje (+)
način stvaranja 100644 datoteka_5.txt

Ako provjerimo našu mapu, trebali bismo vidjeti sljedeću situaciju:

$ ls -1
datoteka_1.txt
datoteka_2.txt
datoteka_3.txt
datoteka_4.txt
datoteka_5.txt

Ako provjerimo povijest, trebali bismo imati sljedeće datoteke:

$ git log --oneline
3f228b2 Dodavanje datoteke_5.txt
9caf084 Dodavanje datoteke_4.txt
97f09ad Dodavanje datoteke_3.txt
ba18a2f Dodavanje datoteke_2.txt
08caf5d Dodavanje datoteke_1.txt

Ajmo sada stvoriti pustoš, izbrisat ćemo nekoliko datoteka i dodati lošu datoteku.

$ rm datoteka_2.txt
$ rm datoteka_4.txt
$ echo w> my_bad_file.txt
$ git dodaj -A
$ git commit -m "Dodane i obrisane datoteke bez razmišljanja o posljedicama"
[master 879fbf8] Dodane i izbrisane datoteke bez razmišljanja o posljedicama
Promijenjene su 3 datoteke, 1 umetanje (+), 2 brisanja (-)
način brisanja 100644 datoteka_2.txt
način brisanja 100644 datoteka_4.txt
način stvaranja 100644 my_bad_file.txt

Ovo je uvjet naše mape:

$ ls -1
datoteka_1.txt
datoteka_3.txt
datoteka_5.txt
my_bad_file.txt

I ovo je stanje naše povijesti:

$ git log --oneline
879fbf8 Dodane i izbrisane datoteke bez razmišljanja o posljedicama
3f228b2 Dodavanje datoteke_5.txt
9caf084 Dodavanje datoteke_4.txt
97f09ad Dodavanje datoteke_3.txt
ba18a2f Dodavanje datoteke_2.txt
08caf5d Dodavanje datoteke_1.txt

Shvaćamo da ne želimo posljednje urezivanje 879fbf8. Dakle, koristimo sljedeću naredbu revert:

$ git revert 879fbf8

Otvorit će se tekstualni prozor za uređivanje automatskog komentara:

Vrati "Dodane i izbrisane datoteke bez razmišljanja o posljedicama"
 
Ovo poništava urezivanje 879fbf849c4bd6fb9a377604d6355c76b92a832c.
 
# Unesite poruku urezivanja za vaše promjene. Linije počinju
# s '#' bit će zanemaren, a prazna poruka prekida urezivanje.
# Na masteru grane
# Izmjene koje treba izvršiti:
# Nova datoteka: datoteka_2.txt
# Nova datoteka: datoteka_4.txt
# Izbrisano: my_bad_file.txt
#

Možete izmijeniti komentar. Zadržat ćemo ga onakvim kakav je. Čim spremite prozor komentara, izvršit će se zadatak vraćanja:

$ git revert 879fbf8
[master 6e80f0e] Vrati "Dodane i izbrisane datoteke bez razmišljanja o posljedicama"
Promijenjene su 3 datoteke, 2 umetanja (+), 1 brisanje (-)
način stvaranja 100644 datoteka_2.txt
način stvaranja 100644 datoteka_4.txt
način brisanja 100644 my_bad_file.txt

Pogledajmo sada našu mapu:

$ ls -1
datoteka_1.txt
datoteka_2.txt
datoteka_3.txt
datoteka_4.txt
datoteka_5.txt

Naše se datoteke vraćaju u nizu kao i prije. Vraćeni su svi dodaci i brisanja. Provjerimo zapisnik:

$ git log --oneline
 
6e80f0e Vrati "Dodane i izbrisane datoteke bez razmišljanja o posljedicama"
879fbf8 Dodane i izbrisane datoteke bez razmišljanja o posljedicama
3f228b2 Dodavanje datoteke_5.txt
9caf084 Dodavanje datoteke_4.txt
97f09ad Dodavanje datoteke_3.txt
ba18a2f Dodavanje datoteke_2.txt
08caf5d Dodavanje datoteke_1.txt

Novi je polog 6e80f0e. Sve promjene koje su bile dio 879fbf8 je poništeno, a zatim počinjeno u 6e80f0e.

Upozorenje: Naredba Git reset omogućuje vam poništavanje i urezivanja. Ali u slučaju resetiranja (posebno hard reset), izbrisao bi 879fbf8 počiniti kao da se nikad nije dogodilo i ne bi bilo 6e80f0e počiniti. Pomoću naredbe za vraćanje svi mogu vidjeti promjene koje su se dogodile. U slučaju resetiranja nije ostao trag. Stoga je loša ideja koristiti naredbu reset u javnom spremištu jer to može izazvati masovnu zabunu. Zlatno je pravilo - nemojte koristiti reset u javnim spremištima, koristite revert koji je sigurniji.

U zaključku:

Naredba Git revert je brz i prikladan način da ispravite svoje pogreške. To je naredba koju biste se trebali sjetiti ako redovito radite s Gitom.

Daljni studiji:

Trackpad i pokazivač miša na ekranu AppyMouse za Windows tablete
Korisnicima tableta često nedostaje pokazivač miša, posebno kada su navični koristiti prijenosna računala. Pametni telefoni i tableti osjetljivi na do...
Srednja tipka miša ne radi u sustavu Windows 10
The srednja tipka miša pomaže vam u pomicanju kroz dugačke web stranice i zaslone s puno podataka. Ako se to zaustavi, na kraju ćete koristiti tipkovn...
Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...