Naletel sem na konflikt pri združevanju. Kako lahko prekinem združevanje?
Uporabil sem git pull
in imel konflikt pri združevanju:
unmerged: _widget.html.erb
You are in the middle of a conflicted merge.
Vem, da je druga različica datoteke dobra in da je moja slaba, zato je treba vse moje spremembe opustiti. Kako lahko to storim?
2374
3
Ker je bil vaš
pull
neuspešen, jeHEAD
(in neHEAD^
) zadnja "veljavna" oddaja v vaši veji:Drugi del, ki ga želite, je dovoliti, da njihove spremembe preglasijo vaše spremembe.
Starejše različice sistema git so omogočale uporabo strategije združevanja "theirs":
Vendar je bila ta možnost odstranjena, kot je pojasnjeno v tem sporočilu Junija Hamana (vzdrževalca sistema Git). Kot je navedeno v povezavi, bi namesto tega naredili tole:
Mislim, da potrebujete
git reset
.Pazite, da
git revert
pomeni nekaj povsem drugega kot na primersvn revert
- v Subversion bo revert zavrgel vaše (nepotrjene) spremembe in vrnil datoteko v trenutno različico iz skladišča, medtem kogit revert
"prekliče" potrditev.git reset
bi moral narediti enako kotsvn revert
, torej zavreči vaše nezaželene spremembe.V tem posebnem primeru uporabe v resnici ne želite prekiniti združevanja, temveč le rešiti konflikt na določen način.
Prav tako ni posebne potrebe po ponastavitvi in izvedbi združitve z drugo strategijo. Konflikte je git pravilno izpostavil in zahteva po sprejetju sprememb druge strani se nanaša samo na to eno datoteko.
Za neusklajeno datoteko v konfliktu git v kazalu da na voljo skupno osnovno, lokalno in oddaljeno različico datoteke. (Od tod se berejo za uporabo v orodju za tristransko razlikovanje
git mergetool
). Za njihov ogled lahko uporabitegit show
.Najpreprostejši način za rešitev konflikta, da se dobesedno uporabi oddaljena različica, je:
Ali pa z git >= 1.6.1: