Git 吉特元';区分我的主插件文件?

Git 吉特元';区分我的主插件文件?,git,bitbucket,Git,Bitbucket,所以我遇到了一个很奇怪的问题。无论我对某个文件做了什么更改,它总是说有1个删除和1个插入,这是每个文件的完整代码。其他文件不会发生这种情况。这是最近才开始发生的,我不确定是什么原因造成的。有什么想法吗 如果你需要我,我会进一步解释 编辑:我想我离弄清楚这件事有点近了。如果我键入git diff,我会得到如下结果: myfile.c text Git试图找出文件是文本文件还是二进制文件,但有时会得到错误的答案。为什么?很难说没有看到文件。也许你有一个非ascii字符在里面,也许行尾很奇怪,也许它

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

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

编辑:我想我离弄清楚这件事有点近了。如果我键入
git diff
,我会得到如下结果:

myfile.c text

Git试图找出文件是文本文件还是二进制文件,但有时会得到错误的答案。为什么?很难说没有看到文件。也许你有一个非ascii字符在里面,也许行尾很奇怪,也许它被搞糊涂了。不管是哪种方式,当它出错时,都应该打开一个
.gittributes
文件以避免混淆

如果所讨论的“主”文件名为
myfile.c
,那么您将创建一个
.gittributes
文件,如下所示:

myfile.c text
如果所有
*.c
文件都是文本,您可以说:

*.c text

查看和

事实证明,它与git中的任何设置无关,而是与文件有关。我发现通过在VIM中打开文件并输入以下命令修复了它:


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

这听起来像是一个下线问题。文件中使用了哪些行尾,您在哪个操作系统上执行此操作?git是否没有正确地看到换行符?是否将文件视为一行?我在Windows 7上使用PHPStorm IDE。我的客户告诉我,当他试图下载该文件时,所有内容都是一行。不确定行尾…听起来文件当前使用的是linux行尾(LF)。也许你的IDE正在/曾经自动转换行尾?这很奇怪,因为它只发生在一个文件上,而这个文件恰好是我插件中的主文件。嗯,我很感激这个答案,但我这样做了,我仍然得到了相同的结果:(