„Git“: įgalinkite filialą ir nepaisykite jokių pakeitimų

Dirbau git šakoje ir buvau pasirengęs atlikti savo pakeitimus, todėl padariau įsipareigojimą naudingu įvykių pranešimu. Tada aš nenuosekliu kodo pakeitimu, kuris neturėtų būti saugomas. Dabar noriu pakeisti šakas, bet git suteikia man

Klaida: vietiniai „X“ pakeitimai; negali keisti šakų.

Maniau, kad galėčiau pakeisti filialus be įsipareigojimo. Jei taip, kaip ją nustatyti? Jei ne, kaip galiu atsikratyti šios problemos? Norėčiau ignoruoti nedidelius pakeitimus nenustatant ir nekeičiant filialų.

218
20 авг. nustatė Daniel Farrell 20 rug. 2009-08-20 10:56 '09 10:56 am. 2009-08-20 10:56
@ 6 atsakymai

Norėdami pakeisti šakas, reikia švarios būsenos. Filialo tikrinimas gali būti įjungtas tik tada, jei jis neturi įtakos „nešvarių failų“ komentarams (pvz., Charles Bailey komentaruose).

Priešingu atveju turėtumėte:

  • ištrinkite dabartinį pakeitimą arba
  • reset --hard HEAD (jei nenorite prarasti šiuos nedidelius pakeitimus) arba
  • checkout -f (toliau dirbti, kai perjungiate filialus, net jei indeksas ar darbo medis skiriasi nuo HEAD. Tai naudojama vietiniams pokyčiams.)
281
20 авг. atsakymą pateikė VonC 20 rug . 2009-08-20 11:02 '09 ne 11:02 2009-08-20 11:02

Jei norite atšaukti pakeitimus,

 git checkout -- <file> git checkout branch 

Jei norite išsaugoti pakeitimus,

 git stash save git checkout branch git stash pop 
88
20 авг. atsakymas, kurį pateikė Jamie Macey 2009-08-20 22:29 '09, 10:29 val. 2009-08-20 22:29

gerai, tai turėtų būti

 git stash save git checkout branch // do something git checkout oldbranch git stash pop 
46
11 окт. atsakymas duotas romerun 11 okt. 2009-10-11 11:48 '09, 11:48, 2009-10-11 11:48

Sekite,

 $: git checkout -f $: git checkout next_branch 
11
20 авг. atsakymas pateikiamas paprasčiausiai 20 rug . 2009-08-20 11:02 '09 ne 11:02 2009-08-20 11:02

Atminkite, kad jei sujungėte nuotolinius filialus arba gavote vietinius įsipareigojimus ir norite grįžti į nuotolinį HEAD, turėtumėte:

 git reset --hard origin/HEAD 

HEAD nurodys tik vietinį įvykdymą / susiliejimą tik kelis kartus, kai pamiršau, kad iš naujo paleidžiau ir baigiu faktą, kad „jūsų saugykla X juda į priekį“, kai aš visiškai ketinu sunaikinti VISUS pokyčius / fiksacijas ir grįžti į nuotolinį skyrių.

7
03 авг. atsakymą pateikė ccliffe 03 rug . 2011-08-03 18:17 '11, 18:17, 2011-08-03 18:17

Jei pakeitėte filmus, kuriuos „Git“ taip pat turi keisti keisdamas filialus, jis neleis jums. Jei norite atmesti darbo pakeitimus, naudokite:

 git reset --hard HEAD 

Tada galite perjungti filialus.

6
20 авг. Greg Hewgill atsakymas 20 rug . 2009-08-20 11:01 '09 at 11:01 2009-08-20 11:01

Kiti klausimai apie „ žymes arba Užduoti klausimą