git - 如何使用 HEAD 和任何 mergetool 解决所有冲突

标签 git git-merge opendiff

因此,出于某种原因,我与新的 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/

相关文章:

Github 分支和分支

git - 为什么 'git merge' 添加波浪号结尾的文件?

git - 有 git-merge --dry-run 选项吗?

c - 头文件中定义的数组,c 文件中未知的数组

Git 标记失败,代码为 128 : fatal: unterminated line in . git/packed-refs

linux - 如何在 Fedora29 Linux 上设置 git 与 QtCreator 一起使用?

Git 使用从 GitHub 客户端同步来分离 HEAD

git - Mavericks 和 Xcode 5.0.1 之后使用 git mergetool 和 opendiff 时出错

git - 如何在 git 中重命名最后 N 个提交消息?