Ich möchte kein visuelles Zusammenführungswerkzeug, und ich möchte auch nicht die in Konflikt stehende Datei vi und manuell zwischen HEAD (meins) und der importierten Änderung (ihrer) auswählen müssen. Die meiste Zeit möchte ich entweder alle ihre Änderungen oder alle meine. In der Regel liegt dies daran, dass meine Änderung das Tempo erhöht hat und durch einen Zug zu mir zurückkehrt, aber an verschiedenen Stellen leicht modifiziert werden kann.
Gibt es ein Kommandozeilen-Tool, mit dem die Konfliktmarkierungen entfernt und je nach meiner Wahl auf die eine oder andere Weise ausgewählt werden können? Oder eine Reihe von Git-Befehlen, die ich selbst als Alias verwenden kann, um jeden einzelnen auszuführen.
# accept mine
alias am="some_sequence;of;commands"
alias at="some_other_sequence;of;commands"
Das zu tun ist ziemlich nervig. Für 'akzeptiere meine' habe ich 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 Änderungsmarker loswerden?
Ich kann:
git reset HEAD Makefile; rm Makefile; git checkout Makefile
Aber das scheint ziemlich rund zu sein, es muss einen besseren Weg geben. Und zu diesem Zeitpunkt bin ich mir nicht sicher, ob Git überhaupt glaubt, dass die Zusammenführung stattgefunden hat, also denke ich nicht, dass dies unbedingt überhaupt funktioniert.
In die andere Richtung zu gehen und ihre zu akzeptieren, ist ebenso chaotisch. Der einzige Weg, wie ich es herausfinden kann, ist:
git show test-branch:Makefile > Makefile; git add Makefile;
Dies gibt mir auch eine durcheinandergebrachte Commit-Nachricht, die zweimal Conflicts: Makefile enthält.
Kann jemand bitte darauf hinweisen, wie die beiden oben genannten Aktionen auf einfachere Weise ausgeführt werden können? Vielen Dank