Git

Ako vrátiť posledný záväzok?

Ako vrátiť posledný záväzok?
Git je efektívny nástroj, ktorý sleduje váš kód. A jednou z vynikajúcich funkcií tohto nástroja je, že môžete ľahko skontrolovať svoju históriu a vrátiť sa späť, ak ste urobili chybu. Vytvorme situáciu, keď môžete vrátiť posledné potvrdenie a pozrieť sa, ako funguje príkaz Git revert.

Začneme pridaním niekoľkých súborov. Pri poslednom potvrdení budeme pridávať aj mazať súbory, aby sme vytvorili nepríjemnú situáciu. Potom sa vrátime späť do stavu pred chaosom.

Môžete vytvoriť priečinok s názvom / test a spustením nasledujúcich príkazov inicializovať Git a vytvoriť situáciu opísanú vyššie (zámerne robíme samostatné záväzky na vytvorenie histórie):

$ git init
Inicializované prázdne úložisko Git v / Users / zakh_eecs / _work / LearnGIT / git_revert / test /.git /
$ echo x> súbor_1.TXT
$ git pridať -A
$ git commit -m "Pridávanie súboru_1.TXT"
[master (root-commit) 08caf5d] Pridávanie súboru_1.TXT
1 súbor zmenený, 1 vloženie (+)
režim vytvorenia 100644 file_1.TXT
$ echo y> súbor_2.TXT
$ git pridať -A
$ git commit -m "Pridávanie súboru_2.TXT"
[master ba18a2f] Pridávanie súboru_2.TXT
1 súbor zmenený, 1 vloženie (+)
vytvorte režim 100644 file_2.TXT
$ echo z> súbor_3.TXT
$ git pridať -A
$ git commit -m "Pridávanie súboru_3.TXT"
[master 97f09ad] Pridáva sa súbor_3.TXT
1 súbor zmenený, 1 vloženie (+)
režim vytvorenia 100644 file_3.TXT
$ echo u> súbor_4.TXT
$ git pridať -A
$ git commit -m "Pridávanie súboru_4.TXT"
[master 9caf084] Pridávanie súboru_4.TXT
1 súbor zmenený, 1 vloženie (+)
vytvorte režim 100644 file_4.TXT
$ echo v> súbor_5.TXT
$ git pridať -A
$ git commit -m "Pridávanie súboru_5.TXT"
[master 3f228b2] Pridávanie súboru_5.TXT
1 súbor zmenený, 1 vloženie (+)
vytvorte režim 100644 file_5.TXT

Ak skontrolujeme náš priečinok, mala by sa zobraziť nasledujúca situácia:

$ ls -1
súbor_1.TXT
súbor_2.TXT
file_3.TXT
súbor_4.TXT
súbor_5.TXT

Ak skontrolujeme históriu, mali by sme mať nasledujúce súbory:

$ git log - online
3f228b2 Pridávanie súboru_5.TXT
9caf084 Pridávanie súboru_4.TXT
97f09ad Pridávanie súboru_3.TXT
ba18a2f Pridávanie súboru_2.TXT
08caf5d Pridávanie súboru_1.TXT

Poďme teraz vytvoriť chaos, ideme vymazať niekoľko súborov a pridať zlý súbor.

$ rm súbor_2.TXT
$ rm súbor_4.TXT
$ echo w> my_bad_file.TXT
$ git pridať -A
$ git commit -m "Pridané a odstránené súbory bez premýšľania o dôsledkoch"
[master 879fbf8] Pridané a odstránené súbory bez premýšľania o dôsledkoch
3 súbory zmenené, 1 vloženie (+), 2 odstránenia (-)
režim odstránenia 100644 file_2.TXT
režim mazania 100644 file_4.TXT
vytvoriť režim 100644 my_bad_file.TXT

Teraz je to podmienka nášho priečinka:

$ ls -1
súbor_1.TXT
file_3.TXT
súbor_5.TXT
my_bad_file.TXT

A toto je stav našej histórie:

$ git log - online
879fbf8 Pridané a odstránené súbory bez premýšľania o dôsledkoch
3f228b2 Pridávanie súboru_5.TXT
9caf084 Pridávanie súboru_4.TXT
97f09ad Pridávanie súboru_3.TXT
ba18a2f Pridávanie súboru_2.TXT
08caf5d Pridávanie súboru_1.TXT

Uvedomujeme si, že nechceme posledný záväzok 879fbf8. Používame teda nasledujúci príkaz revert:

$ git vráti 879fbf8

Otvorí sa textové okno na úpravu automatického komentára:

Vrátiť zmeny „Pridané a odstránené súbory bez premýšľania o dôsledkoch“
 
Týmto sa vráti potvrdenie 879fbf849c4bd6fb9a377604d6355c76b92a832c.
 
# Zadajte správu o potvrdení zmien. Začínajú sa riadky
# s '#' bude ignorované a prázdna správa preruší potvrdenie.
# Na majstra pobočky
# Zmeny, ktoré je potrebné vykonať:
# Nový súbor: file_2.TXT
# Nový súbor: file_4.TXT
# Odstránené: my_bad_file.TXT
#

Komentár môžete upraviť. Budeme to držať tak, ako to je. Hneď ako uložíte okno s komentárom, dôjde k úlohe vrátenia:

$ git vráti 879fbf8
[master 6e80f0e] Vrátiť „pridané a odstránené súbory bez premýšľania o dôsledkoch“
3 súbory zmenené, 2 vloženia (+), 1 odstránenie (-)
vytvorte režim 100644 file_2.TXT
vytvorte režim 100644 file_4.TXT
režim odstránenia 100644 my_bad_file.TXT

Pozrime sa teraz na náš priečinok:

$ ls -1
súbor_1.TXT
súbor_2.TXT
file_3.TXT
súbor_4.TXT
súbor_5.TXT

Naše súbory sú späť v poradí ako predtým. Všetky dodatky a odstránenia boli vrátené späť. Poďme skontrolovať protokol:

$ git log - online
 
6e80f0e Vrátiť „Pridané a odstránené súbory bez premýšľania o dôsledkoch“
879fbf8 Pridané a odstránené súbory bez premýšľania o dôsledkoch
3f228b2 Pridávanie súboru_5.TXT
9caf084 Pridávanie súboru_4.TXT
97f09ad Pridávanie súboru_3.TXT
ba18a2f Pridávanie súboru_2.TXT
08caf5d Pridávanie súboru_1.TXT

Je tu nový záväzok 6e80f0e. Akékoľvek zmeny, ktoré boli súčasťou 879fbf8 bol zrušený a potom spáchaný v 6e80f0e.

Pozor: Príkaz Git reset vám umožňuje vrátiť späť aj záväzky. Ale v prípade resetu (najmä tvrdý reset) by to vymazalo 879fbf8 spáchať, akoby sa to nikdy nestalo a nebolo by žiadneho 6e80f0e spáchať. Pomocou príkazu vrátiť späť môže každý vidieť zmeny, ktoré sa udiali. V prípade resetovania nezostane žiadna stopa. Nie je teda dobrý nápad používať príkaz reset vo verejnom úložisku, pretože to môže spôsobiť hromadný zmätok. Zlaté pravidlo je - nepoužívajte reset vo verejných úložiskách, používajte návrat, ktorý je bezpečnejší.

Na záver:

Príkaz Git revert je rýchly a pohodlný spôsob, ako napraviť svoje chyby. Je to príkaz, ktorý by ste si mali pamätať, ak pravidelne pracujete s Gitom.

Ďalšie štúdium:

Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...