Git

Git Kuidas taastada viimane kohustus?

Git Kuidas taastada viimane kohustus?
Git on tõhus tööriist, mis jälgib teie koodi. Ja tööriista üks suurepäraseid omadusi on see, et saate oma ajaloo hõlpsasti kontrollida ja tagasi minna, kui olete teinud vea. Loome olukorra, kus saate viimase kohustuse tühistada ja vaadata, kuidas Git revert käsk töötab.

Alustame mõne faili lisamisega. Viimasel kohustusel lisame ja kustutame faile, et luua räpane olukord. Siis läheme tagasi kaose eelse seisundi juurde.

Giti initsialiseerimiseks ja ülalkirjeldatud olukorra loomiseks saate luua kausta nimega / test ja käivitada järgmised käsud (ajaloo loomiseks teeme tahtlikult eraldi kohustusi):

$ git init
Initsialiseeritud tühi Giti hoidla kataloogis / Kasutajad / zakh_eecs / _work / LearnGIT / git_revert / test /.git /
$ echo x> file_1.txt
$ git lisa -A
$ git sitout -m "Faili lisamine_1.txt "
[master (juur-toime) 08caf5d] Faili lisamine_1.txt
1 fail muudetud, 1 sisestus (+)
loomisrežiim 100644 file_1.txt
$ echo y> file_2.txt
$ git lisa -A
$ git sitout -m "Faili lisamine_2.txt "
[master ba18a2f] Faili_2 lisamine.txt
1 fail muudetud, 1 sisestus (+)
loomisrežiim 100644 file_2.txt
$ echo z> file_3.txt
$ git lisa -A
$ git pühendama -m "Faili lisamine_3.txt "
[master 97f09ad] Faili_3 lisamine.txt
1 fail muudetud, 1 sisestus (+)
loomisrežiim 100644 file_3.txt
$ echo u> fail_4.txt
$ git lisa -A
$ git sitout -m "Faili lisamine_4.txt "
[master 9caf084] Faili_4 lisamine.txt
1 fail muudetud, 1 sisestus (+)
loomisrežiim 100644 file_4.txt
$ echo v> fail_5.txt
$ git lisa -A
$ git pühendama -m "Faili lisamine_5.txt "
[master 3f228b2] Faili_5 lisamine.txt
1 fail muudetud, 1 sisestus (+)
loomisrežiim 100644 file_5.txt

Kui kontrollime oma kausta, peaksime nägema järgmist olukorda:

$ ls -1
fail_1.txt
file_2.txt
file_3.txt
fail_4.txt
fail_5.txt

Kui kontrollime ajalugu, peaksid meil olema järgmised failid:

$ git log - oneline
3f228b2 Faili_5 lisamine.txt
9caf084 Faili lisamine_4.txt
97f09ad Faili lisamine_3.txt
ba18a2f Faili_2 lisamine.txt
08caf5d Faili lisamine_1.txt

Nüüd tekitame mõningast kaost, kustutame mõned failid ja lisame halva faili.

$ rm fail_2.txt
$ rm fail_4.txt
$ echo w> my_bad_file.txt
$ git lisa -A
$ git toime -m "Lisatud ja kustutatud failid tagajärgi mõtlemata"
[master 879fbf8] Lisas ja kustutas faile tagajärgi mõtlemata
3 faili muudetud, 1 sisestus (+), 2 kustutatud (-)
kustutusrežiim 100644 file_2.txt
kustutusrežiim 100644 file_4.txt
loomisrežiim 100644 my_bad_file.txt

See on meie kausta tingimus:

$ ls -1
fail_1.txt
file_3.txt
fail_5.txt
my_bad_file.txt

Ja see on meie ajaloo tingimus:

$ git log - oneline
879fbf8 Lisas ja kustutas faile tagajärgi mõtlemata
3f228b2 Faili_5 lisamine.txt
9caf084 Faili lisamine_4.txt
97f09ad Faili lisamine_3.txt
ba18a2f Faili_2 lisamine.txt
08caf5d Faili lisamine_1.txt

Mõistame, et me ei taha viimast kohustust 879fbf8. Seega kasutame järgmist käsku tagasipöördumine:

$ git revert 879fbf8

See avab tekstiakna automaatse kommentaari redigeerimiseks:

Ennista "Lisatud ja kustutatud failid tagajärgi mõtlemata"
 
See taastab kohustuse 879fbf849c4bd6fb9a377604d6355c76b92a832c.
 
# Sisestage muudatuste tegemise teade. Liinid algavad
Tähist "#" ignoreeritakse ja tühi kiri peatab kohustuse.
# Filiaali kaptenil
# Tehtavaid muudatusi:
# Uus fail: file_2.txt
# Uus fail: fail_4.txt
# Kustutatud: my_bad_file.txt
#

Saate kommentaari muuta. Hoiame seda sellisena, nagu see on. Niipea kui olete kommenteerimisakna salvestanud, toimub ülesande ennistamine:

$ git revert 879fbf8
[master 6e80f0e] Ennista "Lisatud ja kustutatud failid tagajärgi mõtlemata"
3 faili muudetud, 2 sisestust (+), 1 kustutatud (-)
loomisrežiim 100644 file_2.txt
loomisrežiim 100644 file_4.txt
kustutusrežiim 100644 my_bad_file.txt

Vaatame nüüd meie kausta:

$ ls -1
fail_1.txt
file_2.txt
file_3.txt
fail_4.txt
fail_5.txt

Meie failid on nagu järjest varem tagasi. Kõik täiendused ja kustutused on tühistatud. Kontrollime logi:

$ git log - oneline
 
6e80f0e Ennista "Lisatud ja kustutatud failid tagajärgi mõtlemata"
879fbf8 Lisas ja kustutas faile tagajärgi mõtlemata
3f228b2 Faili_5 lisamine.txt
9caf084 Faili lisamine_4.txt
97f09ad Faili lisamine_3.txt
ba18a2f Faili_2 lisamine.txt
08caf5d Faili lisamine_1.txt

On uus kohustus 6e80f0e. Kõik muudatused, mis olid osa 879fbf8 võeti tagasi ja pandi siis toime aastal 6e80f0e.

Hoiatus: Git reset käsk võimaldab teil ka toimingud tagasi võtta. Kuid lähtestamise korral (eriti tugeva lähtestamise korral) oleks see kustutatud 879fbf8 pühenduda nii, nagu seda pole kunagi juhtunud ja poleks ka olnud 6e80f0e pühenduma. Käsku Tagasi tagastades näevad kõik toimunud muudatusi. Lähtestamise korral ei jää jälgegi. Seega on halb mõte lähtestuskäsku kasutada avalikus hoidlas, kuna see võib tekitada massilist segadust. Kuldreegel on - ärge lähtestage avalikes hoidlates lähtestamist, kasutage turvalisemat versiooni.

Kokkuvõtteks:

Git revert-käsk on kiire ja mugav viis vigade parandamiseks. See on käsk, mida peaksite meeles pidama, kui töötate regulaarselt Gitiga.

Edasine uuring:

Kuidas kuvada OSD ülekatet täisekraanil Linuxi rakendustes ja mängudes
Täisekraaniga mängude mängimine või rakenduste kasutamine häireteta täisekraanirežiimis võib teid paneelil või tegumiribal kuvatavast asjakohasest süs...
Viis parimat mängu püüdmise kaarti
Me kõik oleme YouTube'is voogesituse mänge näinud ja armastanud. PewDiePie, Jakesepticye ja Markiplier on vaid mõned tipptasemel mängijatest, kes on t...
Kuidas mängu Linuxis arendada
Kümme aastat tagasi ei osanud paljud Linuxi kasutajad ennustada, et nende lemmikoperatsioonisüsteem on ühel päeval populaarne kommertsvideomängude män...