因此,出于某种原因,我与新的 merge 修补程序发生了很多冲突。实际[手动]更改的文件没有冲突。 所有冲突都在修复期间未触及的文件中,显然是空格问题。我稍后会尝试解决该问题,但现在我需要 merge 修补程序并进行部署。
如何解决所有冲突以使用 HEAD 版本?我不想一个文件一个文件地去。是的,我知道这是一种不好的做法,但冲突都是空白,我知道 HEAD 是正确的——通过所有测试并在生产中运行良好。
有什么想法吗?
我正在使用 OSX。
最佳答案
git merge -Xours origin/master
将与 origin/master
进行 merge (与 git pull origin master
所做的相同)并将通过从本地分支获取版本来解决任何冲突。
如果您已经完成了错误的 merge ,您可以先使用 git reset --hard HEAD
将所有内容重置为头部。
在那种情况下,你应该这样做
git reset --hard HEAD
git merge -Xours origin/master
这应该可以解决您的问题!
(同样值得一提的是,-Xtheirs
会做同样的事情,但在任何冲突中都采用上游版本。)
此外,冲突很可能是因为上游版本使用的是 windows 风格的行尾,而您在本地计算机上编辑文件的任何程序都使用 mac 风格或 linux 风格的行尾。
您可以在 git 中设置选项以始终提交 windows 风格或 linux 风格的行尾,但始终在您的工作目录中 checkout mac 风格或 linux 风格。
查看此链接了解更多信息: https://help.github.com/articles/dealing-with-line-endings
关于git - 如何使用 HEAD 和任何 mergetool 解决所有冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20229222/