Próbuję pobrać kod z mojego repozytorium GitHub na mój serwer, ale ciągnięcie nie powiedzie się z powodu konfliktów scalania. Nie chcę zachować żadnych zmian, które mogły wystąpić na moim serwerze lokalnym od czasu ostatniego ściągnięcia.
Czy jest więc sposób, w jaki mogę zmusić Git do zastąpienia dowolną wersją w GitHub, zamiast martwić mnie konfliktami?
Odpowiedzi:
Jeśli naprawdę chcesz odrzucić zatwierdzenia , które poczyniłeś lokalnie, tj. Nigdy nie będziesz ich mieć w historii, nie pytasz, jak wyciągnąć - pull oznacza scalenie i nie musisz scalać. Wszystko, co musisz zrobić, to:
Osobiście poleciłbym najpierw utworzyć gałąź zapasową w bieżącym HEAD, aby jeśli zdałeś sobie sprawę, że był to zły pomysł, nie straciłeś go z oczu.
Z drugiej strony, jeśli chcesz zachować te zatwierdzenia i sprawić, by wyglądało to tak, jakbyś połączył się z początkiem, i spowodowałoby, że scalanie nie zachowałoby wersji tylko od początku, możesz użyć
ours
strategii scalania:źródło
Możesz użyć odpowiedzi z duplikatu linku wskazanego przez nvm.
Lub możesz rozwiązać konflikty za pomocą ich zmian (ale niektóre z twoich zmian mogą zostać zachowane, jeśli nie powodują konfliktu z wersją zdalną):
źródło
X
opcja jest przekazywana do scalania strategii, która jest tylkorecursive
wtedy, gdy scalisz dwie głowy, więc twoje polecenie będzie narzekać"Could not find merge strategy 'theirs'. Available strategies are: octopus ours recursive resolve subtree."
- szkoda, ponieważX
można ustawić w config (np.git config pull.twohead theirs
), ales
nie można.