在GIT中,是否有一种方法可以在提交时将更改的文件移除,如果它少于2个字符被更改?

8
我一直在做一个项目,编辑了文件夹中的一堆文件。这个文件夹位于我的本地,没有被GIT监视。我通常将整个文件夹复制到另一台由GIT监视的计算机上,以推送到存储库。现在的问题是,由于从Windows复制到Linux,导致换行符和空格被显示出来,因此一堆文件被显示为已更改。我运行了以下命令:git diff --stat 来显示所有已更改的文件及其更改的行数/字符数。

enter image description here

如您所见,这些文件中很多都没有做任何更改。然而,在我的git status修改部分仍会显示出来。

我该如何将它们移除或恢复成正常状态,因为我从未对这些文件进行过任何更改?


2
更好的问题是如何让git忽略换行符的更改。这里有一个Github文档 - Schwern
感谢您的澄清。这是引起这个问题的罪魁祸首吗? - Patoshi パトシ
2
可能是Git状态忽略行结尾/相同文件/Windows和Linux环境/Dropbox/MLED的重复问题。 - alexander.polomodov
git config core.autocrlf false - Sanjit Kumar Mishra
2个回答

5

请检查您要复制这些文件的目标Git仓库的配置。

git config core.autocrlf

请确保将其设置为false:git config core.autocrlf false更多信息请参见此处)。

然后,请仔细检查.gitattributes文件的存在和内容。它们也可以使用core.eol指令影响eol。


1

我认为这些文件出现的原因更可能是由于模式更改。尝试在其中一个文件上运行git diff。你是否看到类似于这样的内容?

$ git diff query.viewport.js
diff --git a/query.viewport.js b/query.viewport.js
old mode 100644
new mode 100755

如果是这样,那么您可能可以使用类似以下的方法来解决问题:
$ find modules/hotsite/ -type f -print0 | xargs -0 chmod -x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接