Je ne veux pas d'outil de fusion visuel, et je ne veux pas non plus avoir à vi le fichier en conflit et choisir manuellement entre HEAD (le mien) et le changement importé (le leur). La plupart du temps, je veux soit tous leurs changements, soit tous les miens. Généralement, cela est dû au fait que ma modification est arrivée en amont et me revient par un pull, mais peut être légèrement modifiée à divers endroits.
Existe-t-il un outil en ligne de commande qui permettra de se débarrasser des marqueurs de conflit et de choisir d'une manière ou d'une autre en fonction de mon choix? Ou un ensemble de commandes git que je peux alias moi-même pour faire chacune.
# accept mine
alias am="some_sequence;of;commands"
alias at="some_other_sequence;of;commands"
Faire cela est plutôt ennuyeux. Pour «accepter le mien», j'ai essayé:
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.
Comment suis-je censé me débarrasser de ces marqueurs de changement?
Je peux faire:
git reset HEAD Makefile; rm Makefile; git checkout Makefile
Mais cela semble plutôt rond, il doit y avoir un meilleur moyen. Et à ce stade, je ne sais pas si git pense même que la fusion a eu lieu, donc je ne pense pas que cela fonctionne même nécessairement.
Dans l'autre sens, faire «accepter le leur» est tout aussi compliqué. La seule façon de le comprendre est de faire:
git show test-branch:Makefile > Makefile; git add Makefile;
Cela me donne également un message de validation foiré, qui contient deux fois Conflits: Makefile.
Quelqu'un peut-il indiquer comment effectuer les deux actions ci-dessus de manière plus simple? Merci