Kaip išjungti paskutinį įvykį git

Kaip galiu atskleisti savo paskutinį įsipareigojimą git?

Tai yra

 git reset --hard HEAD 

arba

 git reset --hard HEAD^ 
513
17 мая '10 в 1:26 2010-05-17 01:26 Richardas yra nustatytas gegužės 17 d ., 10 val. 1:26 2010-05-17 01:26
@ 8 atsakymai

Jei nesate visiškai tikri, ką reiškia „uncommit“, ir nežinote, ar norite naudoti „ git reset , žr. „ Grįžti į ankstesnį„ Git “įsipareigojimą “.

Jei bandote geriau suprasti git reset , žr. „ Ar galite paaiškinti, ką git reset reiškia paprastu anglų kalba? “.


Jei žinote, kad norite naudoti git reset , jis vis tiek priklauso nuo to, ką jūs suprantate kaip „nepageidaujamą“. Jei viskas, ką norite padaryti, yra anuliuoti įsipareigojimo veiksmą, palikdami visą kitą nepaliestą, naudokite:

 git reset --soft HEAD^ 

Jei norite atšaukti įsipareigojimo aktą ir viską, ką įdėjote, bet palikti darbo medį (failai nepaliesti):

 git reset HEAD^ 

Ir jei tikrai norite visiškai atšaukti, atsisakykite visų neprisiimtų pakeitimų, atsisakydami visų ankstesnių įsipareigojimų (kaip pradinis klausimas):

 git reset --hard HEAD^ 

Pirminis klausimas taip pat paklausė jam HEAD^ HEAD . HEAD nurodo dabartinį įsipareigojimą - paprastai pasirinkto šakos viršūnę. ^ yra etiketė, kuri gali būti susieta su bet kokiu įsipareigojimo nustatymu ir reiškia „įsipareigoti“. Taigi, HEAD^ yra įsipareigojimas prieš dabartinį, kaip master^ yra pataisa prieš pagrindinio filialo pabaigą.

Čia yra dalis git-rev-parse dokumentacijos, kurioje aprašomi visi būdai, kaip nustatyti įsipareigojimus ( ^ yra tik vienas iš pagrindinių).

838
17 мая '10 в 3:52 2010-05-17 03:52 atsakymą pateikė Jefromi gegužės 17 d. 10 d. 3:52 2010-05-17 03:52

Jei norite išsaugoti pakeitimus iš įsipareigojimo, kurį norite atšaukti

 git reset --soft HEAD^ 

Jei norite anuliuoti pakeitimus iš įsipareigojimo, kurį norite atšaukti

 git reset --hard HEAD^ 

Taip pat galite pasakyti

border=0
 git reset --soft HEAD~2 

grąžinti 2 įsipareigojimus.

Redaguoti: kaip paminėta „charsi“, jei esate sistemoje „Windows“, turėsite įdėti HEAD arba perduoti maišos kabutes.

 git reset --soft "HEAD^" git reset --soft "asdf" 
198
20 нояб. Alex Kinnee atsakymas lapkričio 20 d 2012-11-20 22:12 „12, 12:12 pm 2012-11-20 22:12

Tai yra paskutinis.

git reset --hard HEAD^ jei taip pat norite atmesti atliktus pakeitimus. git reset --soft HEAD^ išsaugos darbo medžio pakeitimus.

82
17 мая '10 в 1:29 2010-05-17 01:29 atsakymas pateikiamas nfm gegužės 17 d., 10 val. 1:29 2010-05-17 01:29

Būkite atsargūs, taip pat reset --hard vietinius ( reset --hard ) pakeitimus.

 git reset --hard HEAD^ 

Pastaba: jei esate >

 git reset --hard "HEAD^" 
38
17 мая '10 в 1:28 2010-05-17 01:28 atsakymas duotas tgeros gegužės 17 d., 10 val. 1:28 2010-05-17 01:28

Tiesiog pastebėkite - jei naudojate ZSH ir matote klaidą

 zsh: no matches found: HEAD^ 

Jums reikia vengti ^

 git reset --soft HEAD\^ 
18
12 сент. atsakymas pateikiamas 12 d. 2013-09-12 15:54 '13, 15:54, 2013-09-12 15:54

Jei dar nepaspaudėte savo pakeitimų, naudokite git reset --soft [Hash for one commit] norite grįžti prie konkretaus įsipareigojimo. --soft nurodo, kad „git“ turi --soft pakeitimus (t. y. pažymėti failus kaip pakeistus). --hard sako git pašalinti pašalintus pakeitimus.

18
23 окт. Allen Kenney atsakymas, pateiktas spalio 23 d 2014-10-23 00:07 '14 - 0:07 2014-10-23 00:07

Jei padarote neteisingą šaką

Neteisingoje šakoje:

  • git log -2 duoda paskutinių 2 įpareigojimų, sako $prev ir $last
  • git checkout $prev validation fix
  • git checkout -b new-feature-branch sukuria naują funkciją
  • git cherry-pick $last pataiso filialą su pakeitimais

Tada galite atlikti vieną iš pirmiau nurodytų metodų, kad pašalintumėte įsipareigojimą iš pirmosios šakos.

11
24 янв. atsakymas duotas splendidthoughts Jan 24 2015-01-24 04:26 '15 ne 4:26 2015-01-24 04:26

Būkite atsargūs.

Bet jūs galite naudoti komandą „Rebase“

 git rebase -i HEAD~2 

Atsidarys vi , ir viskas, ką jums reikia padaryti, yra pašalinti padarytą eilutę. Taip pat galite perskaityti instrukcijas, kurios buvo rodomos teisingame leidinyje @ vi , šiame režime, galite atlikti keletą veiksmų

1
12 авг. atsakymas duotas Filipe 12 rug. 2014-08-12 17:44 '14, 17:44 2014-08-12 17:44

Kiti klausimai apie žymes arba Ask a Question