Git

Git Hur man återställer senaste åtagande?

Git Hur man återställer senaste åtagande?
Git är ett effektivt verktyg som håller koll på din kod. Och en av de fantastiska funktionerna i verktyget är att du enkelt kan kontrollera din historik och återgå om du har gjort ett misstag. Låt oss skapa en situation där du kan återställa det senaste engagemanget och se hur Git revert-kommandot fungerar.

Vi ska börja med att lägga till några filer. Vid det senaste engagemanget ska vi både lägga till och ta bort filer för att skapa en rörig situation. Sedan kommer vi att återgå till staten före kaoset.

Du kan skapa en mapp som heter / testa och köra följande kommandon för att initialisera Git och skapa situationen som beskrivs ovan (Vi gör avsiktligt separata åtaganden för att skapa en historik):

$ git init
Initierat tomt Git-arkiv i / Användare / zakh_eecs / _work / LearnGIT / git_revert / test /.git /
$ echo x> file_1.Text
$ git add -A
$ git commit -m "Lägger till fil_1.Text"
[master (root-commit) 08caf5d] Lägger till file_1.Text
1 fil ändrad, 1 infogning (+)
skapa läge 100644 file_1.Text
$ echo y> file_2.Text
$ git add -A
$ git commit -m "Lägger till fil_2.Text"
[master ba18a2f] Lägger till fil_2.Text
1 fil ändrad, 1 infogning (+)
skapa läge 100644 file_2.Text
$ echo z> file_3.Text
$ git add -A
$ git commit -m "Lägger till file_3.Text"
[master 97f09ad] Lägger till fil_3.Text
1 fil ändrad, 1 infogning (+)
skapa läge 100644 file_3.Text
$ echo u> file_4.Text
$ git add -A
$ git commit -m "Lägger till file_4.Text"
[master 9caf084] Lägga till fil_4.Text
1 fil ändrad, 1 infogning (+)
skapa läge 100644 file_4.Text
$ echo v> file_5.Text
$ git add -A
$ git commit -m "Lägger till file_5.Text"
[master 3f228b2] Lägga till fil_5.Text
1 fil ändrad, 1 infogning (+)
skapa läge 100644 file_5.Text

Om vi ​​kontrollerar vår mapp bör vi se följande situation:

$ ls -1
file_1.Text
file_2.Text
fil_3.Text
fil_4.Text
fil_5.Text

Om vi ​​kontrollerar historiken bör vi ha följande filer:

$ git log - online
3f228b2 Lägger till fil_5.Text
9caf084 Lägger till fil_4.Text
97f09ad Lägger till fil_3.Text
ba18a2f Lägger till fil_2.Text
08caf5d Lägger till fil_1.Text

Låt oss nu skapa lite förödelse, vi ska ta bort några filer och lägga till en dålig fil.

$ rm file_2.Text
$ rm file_4.Text
$ echo w> min_bad_fil.Text
$ git add -A
$ git commit -m "Tillagda och raderade filer utan att tänka på konsekvenser"
[master 879fbf8] Lade till och raderade filer utan att tänka på konsekvenser
3 filer har ändrats, 1 infogning (+), 2 raderingar (-)
ta bort läge 100644 file_2.Text
ta bort läge 100644 file_4.Text
skapa läge 100644 my_bad_file.Text

Nu är detta villkoren för vår mapp:

$ ls -1
file_1.Text
fil_3.Text
fil_5.Text
min_bad_fil.Text

Och detta är villkoren för vår historia:

$ git log - online
879fbf8 Tillagda och raderade filer utan att tänka på konsekvenser
3f228b2 Lägger till fil_5.Text
9caf084 Lägger till fil_4.Text
97f09ad Lägger till fil_3.Text
ba18a2f Lägger till fil_2.Text
08caf5d Lägger till fil_1.Text

Vi inser att vi inte vill ha det senaste åtagandet 879fbf8. Så vi använder följande återkommandot:

$ git återgår 879fbf8

Det öppnar ett textfönster för redigering av den automatiska kommentaren:

Återställ "Tillagda och raderade filer utan att tänka på konsekvenser"
 
Detta återställer åtagande 879fbf849c4bd6fb9a377604d6355c76b92a832c.
 
# Ange engagemangsmeddelandet för dina ändringar. Linjer börjar
# med '#' ignoreras och ett tomt meddelande avbryter åtagandet.
# På filialmästare
# Ändringar som ska göras:
# Ny fil: file_2.Text
# Ny fil: file_4.Text
# Borttagen: min_bad_fil.Text
#

Du kan ändra kommentaren. Vi kommer att behålla det som det är. Så snart du sparar kommentarfönstret kommer återuppgiften att äga rum:

$ git återgår 879fbf8
[master 6e80f0e] Återställ "Tillagda och raderade filer utan att tänka på konsekvenser"
3 filer har ändrats, 2 infogningar (+), 1 radering (-)
skapa läge 100644 file_2.Text
skapa läge 100644 file_4.Text
ta bort läge 100644 my_bad_file.Text

Låt oss titta på vår mapp nu:

$ ls -1
file_1.Text
file_2.Text
fil_3.Text
fil_4.Text
fil_5.Text

Våra filer är tillbaka i ordning som tidigare. Alla tillägg och raderingar har återställts. Låt oss kontrollera loggen:

$ git log - online
 
6e80f0e Återställ "Tillagda och raderade filer utan att tänka på konsekvenser"
879fbf8 Tillagda och raderade filer utan att tänka på konsekvenser
3f228b2 Lägger till fil_5.Text
9caf084 Lägger till fil_4.Text
97f09ad Lägger till fil_3.Text
ba18a2f Lägger till fil_2.Text
08caf5d Lägger till fil_1.Text

Det finns ett nytt åtagande 6e80f0e. Eventuella ändringar som ingick i 879fbf8 ångrades och sedan begicks 6e80f0e.

Varning: Med kommandot Git reset kan du också ångra åtaganden. Men i återställningsfallet (särskilt hård återställning) skulle det ha tagit bort 879fbf8 begå som det aldrig hände och det skulle ha varit nej 6e80f0e begå. Med ett återvändande kommando kan alla se de förändringar som har ägt rum. I återställningsfallet finns inget spår kvar. Så det är en dålig idé att använda reset-kommandot i ett offentligt arkiv eftersom det kan orsaka massförvirring. Den gyllene regeln är - använd inte återställning i offentliga arkiv, använd återvänd som är säkrare.

Sammanfattningsvis:

Kommandot Git revert är ett snabbt och bekvämt sätt att åtgärda dina misstag. Det är ett kommando du bör komma ihåg om du arbetar regelbundet med Git.

Ytterligare studier:

Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...