Ich möchte kein visuelles Zusammenführungswerkzeug, und ich möchte auch nicht die konfliktbehaftete Datei durchsuchen und manuell zwischen HEAD (meiner) und der importierten Änderung (ihrer) wählen müssen. Meistens möchte ich entweder alle ihre Änderungen oder alle meine. Meistens liegt das daran, dass meine Änderung es nach oben geschafft hat und durch einen Pull zu mir zurückkommt, aber an verschiedenen Stellen leicht verändert sein kann.
Gibt es ein Befehlszeilentool, das die Konfliktmarkierungen beseitigt und alles auf die eine oder andere Weise auswählt, je nach meiner Wahl? Oder gibt es eine Reihe von Git-Befehlen, die ich mit Aliasen versehen kann, um jeden einzelnen Befehl auszuführen.
# accept mine
alias am="some_sequence;of;commands"
alias at="some_other_sequence;of;commands"
Das ist ziemlich lästig. Für "Meinen akzeptieren" habe ich es versucht:
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.
Wie soll ich diese Änderungsmarkierungen wieder loswerden?
Ich kann das:
git reset HEAD Makefile; rm Makefile; git checkout Makefile
Aber das scheint ziemlich umständlich zu sein, es muss einen besseren Weg geben. Und zu diesem Zeitpunkt bin ich mir nicht sicher, ob Git überhaupt denkt, dass die Zusammenführung stattgefunden hat, also glaube ich nicht, dass dies notwendigerweise überhaupt funktioniert.
Umgekehrt ist es genauso chaotisch, wenn man "die ihren" akzeptiert. Der einzige Weg, wie ich es herausfinden kann, ist tun:
git show test-branch:Makefile > Makefile; git add Makefile;
Dadurch erhalte ich auch eine verkorkste Commit-Meldung, die Konflikte enthält: Makefile zweimal vorkommt.
Kann mir jemand zeigen, wie man die beiden oben genannten Aktionen auf einfachere Weise durchführen kann? Danke