Czy zmusić Git do zawsze wybierania nowszej wersji podczas scalania?


103

Załóżmy, że mergegit i jest konflikt scalania.

Moje pytanie brzmi: jak zmusić git, aby zawsze wybierał nowszą wersję kodu będącego w konflikcie, aby nie musieć rozwiązywać konfliktu ręcznie?



ale chcę zrobić scalanie (nie zastępować zatwierdzeń), ale dodatkowo automatycznie rozwiązywać konflikty.
bartek

Odpowiedzi:


189

Nie jest to dokładnie „nowsza” wersja, ale możesz powiedzieć gitowi, aby zawsze preferował wersję z bieżącej gałęzi używając git merge branch -X ourslub preferował wersję scalanej gałęzi, używając git merge branch -X theirs.

Od man git-merge:

nasz:

Ta opcja wymusza automatyczne rozwiązywanie konfliktów porcji poprzez faworyzowanie naszej wersji. Zmiany z innego drzewa, które nie kolidują z naszą stroną, są odzwierciedlane w wyniku scalenia. W przypadku pliku binarnego cała zawartość jest pobierana z naszej strony.

ich:

Jest to przeciwieństwo „naszego”.


9
ours- theirs!! Po prostu powiedz to, a zrozumiesz, co robi polecenie! Uwielbiam Git! : D
Haywire

14
Uwaga: jeśli już używałeś git merge branch, musisz git merge --abortto zrobić, zanim będziesz mógł to zrobić.
John Dvorak,

1
Nie działa na mnie. Nadal przerywa scalanie. error: The following untracked working tree files would be overwritten by merge:Nie wiem nawet, dlaczego te pliki są w tej gałęzi w pierwszej kolejności, ale powinny zostać nadpisane, a git odmawia.
mcv

2
Jeśli nie są śledzone, musisz git addje najpierw usunąć (lub ). Przeczytaj trochę o tym git clean, może ci to pomóc.
Renato Zannon

Czy po uruchomieniu git merge ourssą jakieś pliki konfliktów, czy będzie jakiś dziennik? i czy mogę śledzić z git merge ours?
zx1986

20

Używam tego,

git fetch --prune
git reset --hard origin/master

2
To rozwiązanie pomogło mi naprawić niescalone konflikty, kiedy wszystko, czego chciałem, to przesłonić gałąź główną. użyłem resetowania git - hard master (z lokalnego)
Juan Mendez
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.