Git不会区分我的主插件文件?

时间:2013-02-06 15:38:26

标签: git bitbucket

所以我遇到了一个很奇怪的问题。无论我对某个文件做了什么改变,它总是说有1个删除和1个插入,这是每个文件的整个代码。这不会发生在其他文件中。这种情况最近才开始发生,我不确定是什么原因造成的。有什么想法吗?

如果你需要我,我会进一步解释。

编辑:我想我已经越来越接近搞清楚了。如果我输入git diff,我会得到类似的结果:

<?php^M^M/*^MPlugin Name: SomeName^MPlugin URI: http://...

所以,它肯定与行结尾有关,但我怎么能摆脱那些?

2 个答案:

答案 0 :(得分:3)

Git试图弄清楚文件是文本还是二进制,但有时会得到错误的答案。为什么?很难说没有看到文件。也许你有一个非ascii字符,也许行结尾很奇怪,也许它感到困惑。无论哪种方式,当它出错时,是时候打破.gitattributes文件以避免混淆。

如果相关的“主”文件被命名为myfile.c,那么您将创建一个.gitattributes文件,如下所示:

myfile.c text

如果所有*.c个文件都是文字,您只需说:

*.c text

请参阅http://git-scm.com/book/ch7-2.htmlWhy does Git treat this text file as a binary file?以及http://git-scm.com/docs/gitattributes

答案 1 :(得分:2)

事实证明它与git中的任何设置无关,但与文件无关。我发现this answer over at SE通过在VIM中打开文件并输入以下命令来修复它:

:%s/^M/\r/g(按CTRL+V然后按CTRL+M获取^M