GIT 中是否有一种方法可以删除更改的文件,如果更改的字符少于 2 个,则不提交更改?

Is there a way in GIT, to remove files changed from being committed if it has less than 2 characters changed?

我一直在做一个项目,编辑了一个文件夹中的一堆文件。此文件夹位于我的本地,未被 GIT 监视。我通常将整个文件夹复制到另一台由 GIT 监视的计算机中,以将其推送到存储库。现在的问题是,由于行尾和空格的出现,一堆文件被显示为已更改,因为它正在从 windows 复制到 linux 框。

我执行了以下命令:git diff --stat 以显示所有随 lines/characters 的 # 更改的文件。

如您所见,其中许多文件的更改为零。但是,它们仍然出现在我的 git status 修改部分。

由于我从未对这些文件进行过任何更改,因此如何删除这些文件或将其恢复为正常状态?

检查您在复制这些文件的目标 Git 存储库上的配置。

git config core.autocrlf

确保将其设置为 false:git config core.autocrlf false (see more here).

然后仔细检查 .gitattributes 文件的存在和内容。它们也可以通过 core.eol directives.

影响 eol

我认为这些文件更有可能是由于模式更改而出现的。在其中一个上尝试 运行 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