Nie jestem do końca pewien, o co chodzi w twoim przypadku testowym. Wydaje się, że przesuwasz gui.bin na bok, a następnie odkładasz z powrotem tak, jak było ...
Często pliki binarne nie muszą być łączone, po prostu chcesz wybrać wersję ostateczną od jednej miejsce lub inny. Tam, gdzie naprawdę trzeba je scalić, potrzebujesz niestandardowego narzędzia do scalania lub użyj jakiegoś edytora i wielu ręcznych interwencji.
Zauważyłem, że w swoim przykładzie używasz commit -a
. Pierwszym krokiem do uniknięcia niepotrzebnych konfliktów jest niewprowadzanie żadnych plików binarnych, które mogłyby zostać przypadkowo dotknięte, chyba że chcesz je zatwierdzić. Jeśli po prostu git add
pliki, które trzeba zatwierdzić i zatwierdzić bez -a
to pomoże. Alternatywnie, jeśli istnieje tylko jeden plik, którego nie chcesz zatwierdzić, możesz go zresetować przed wykonaniem zatwierdzenia.
git add -u
git reset -- dontcommit.dat
git commit
Po scaleniu gałęzi, które mają obie zmiany binarne, możesz zachować jedną wersję, a nie drugą. Po scaleniu gdzie git mówi, że ich są konflikty w binarnym można powiedzieć git użyć wersji w branży, że jesteś na to tak:
git checkout --ours binary.dat
git add binary.dat
lub z gałęzi, które łączą się ze sobą w ten sposób :
git checkout --theirs binary.dat
git add binary.dat
Zobacz także http: // stackoverflow.com/questions/1910444/git-merge-s-one-needed-but-i-know-it-doesnt exist/1910479 # 1910479 – VonC