Мне не нужен инструмент визуального слияния, а также я не хочу просматривать конфликтующий файл и вручную выбирать между HEAD (моим) и импортированным изменением (их). Большую часть времени я либо хочу все их изменения, либо все мои. Обычно это происходит потому, что мои изменения сделали его более быстрым и возвращаются ко мне через тягу, но могут быть слегка изменены в разных местах.
Есть ли инструмент командной строки, который избавится от маркеров конфликта и выберет все так или иначе, основываясь на моем выборе? Или набор команд git, которые я могу использовать для каждой из них.
# accept mine
alias am="some_sequence;of;commands"
alias at="some_other_sequence;of;commands"
Делать это довольно раздражает. Для «принять мое» я попытался:
randy@sabotage ~/linus $ git merge test-branch
Auto-merging Makefile
CONFLICT (content): Merge conflict in Makefile
Automatic merge failed; fix conflicts and then commit the result.
randy@sabotage ~/linus $ git checkout Makefile
error: path 'Makefile' is unmerged
andy@sabotage ~/linus $ git reset --hard HEAD Makefile
fatal: Cannot do hard reset with paths.
Как я должен избавиться от этих маркеров изменений?
Я могу сделать:
git reset HEAD Makefile; rm Makefile; git checkout Makefile
Но это кажется довольно круглым, должен быть лучший путь. И на данный момент, я не уверен, что Git даже думает, что слияние произошло, поэтому я не думаю, что это обязательно сработает.
Если идти в другую сторону, делать «принять их» одинаково грязно. Единственный способ понять это - сделать:
git show test-branch:Makefile > Makefile; git add Makefile;
Это также дает мне испорченное сообщение о коммите, в котором дважды есть Conflicts: Makefile.
Может кто-нибудь указать, как сделать два вышеуказанных действия более простым способом? Спасибо