最佳答案
我不需要一个可视化的合并工具,我也不希望必须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是否认为合并发生了,所以我认为这不一定有效。
反过来说,“accept their”也同样混乱。 我能弄清楚的唯一方法是do:git show test-branch:Makefile > Makefile; git add Makefile;
这也给了我一个混乱的提交消息,其中两次包含Conflicts: Makefile。
谁能告诉我如何用更简单的方法来做以上两个动作?谢谢