合并具有不同行尾字符的文件

时间:2013-02-07 15:01:07

标签: git diff git-merge end-of-line

我在Linux上使用GIT,我的同事在Windows上与GIT合作。

我对文件提交了一些更改,我的同事对该文件进行了一些其他更改。

我的同事推了推,我拉了。

现在,我的整个文件是一个很大的冲突:

<<<<<<< HEAD
...
[my version]
....
=======
...
[colleague's version]
...
>>>>>>> branch 'master' of https://github.com/rothariel/aimnegochat.git

我该怎么办?如何合并更改?

3 个答案:

答案 0 :(得分:3)

从github上的这篇文章中你可以克服这样的问题

建议的eol是\ n,您可以使用它来自动转换

git config --global core.autocrlf input
# Set this setting on OSX or Linux

git config --global core.autocrlf true
# Set this setting on Windows

看看下一步该做什么的例子。

https://help.github.com/articles/dealing-with-line-endings

答案 1 :(得分:1)

我遇到了类似的问题:

git merge <master|branch|whatever> -s recursive -Xignore-space-at-eol

似乎做我需要它做的事情,但它给了我错误:

error: addinfo_cache failed for path ...

然而:

git merge <master|branch|whatever> -s recursive -X renormalize

似乎可以做到这一点。

每次我签入文件时,我仍然遇到行结尾的问题。提交/合并过程中的某些内容正在将我的行结尾切换回他们不应该做的事情。

我试过搞乱

git config --global core.autocrlf <true|input|false>

设置,但它似乎无法解决某些事情正在改变git工具链中的行结尾。

答案 2 :(得分:-1)

您需要将您的同事所做的更改与您的更改合并。只需编辑文件add to index即可。在此之后,您可以commit进行更改。