我不需要可视化合并工具,而且我也不想必须 vi 冲突文件并手动在 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 。
有人可以指出如何以更简单的方式执行上述两个操作吗?谢谢