Załóżmy, że mam konflikt scalania na foo/bar.txt
gdy działa w ten sposób:Jak automatycznie rozwiązać konflikt Git, biorąc wersję w bieżącym oddziale?
$ git checkout A
$ git merge B
Chciałbym automatycznie rozwiązać konflikt poprzez foo/bar.txt
z oddziału A. (wiem, co robię, a ja . trzeba to wersja w gałęzi B jest źle, a ja nie dbam o utratę zmian w drzewie pracujących w tym przypadku) wydaje się, że mogę to zrobić poprzez uruchomienie tych poleceń.
$ git reset foo/bar.txt
$ git checkout foo/bar.txt
Is istnieje prostsze rozwiązanie o pojedynczej komendzie?
Niestety, te polecenia zmieniają się foo/bar.txt
, nawet jeśli nie ma konfliktu, a ja tego nie chcę. Jeśli nie ma konfliktu, chcę zachować foo/bar.txt
w jakimkolwiek stanie, który został mu pozostawiony przez git merge B
.
Potrzebuję więc polecenia powłoki uniksowej, które wykryłoby konflikt w foo/bar.txt
, a jeśli tak, rozwiąże konflikt, pobierając wersję foo/bar.txt
z bieżącej gałęzi. Nie zrobiłoby to nic więcej, tj. Nie zmodyfikowałoby innych plików, nie zatwierdziłoby zmian i nie zmieniłoby się foo/bar.txt
, jeśli nie ma konfliktu w tym pliku.
Zdalne: http://stackoverflow.com/questions/528659/git-automatic-conflict-resolution –