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

时间:2016-04-01 20:46:05

标签: git diff git-diff

我一直在研究一个项目,并在一个文件夹中编辑了一堆文件。此文件夹驻留在我的本地,而不是由GIT监视。我通常会将整个文件夹复制到GIT观看的另一台计算机中,然后将其推送到回购站。现在的问题是,由于行结尾和空格被显示,一堆文件被显示为已更改,因为它正从windows复制到linux盒子。

我执行了以下命令: git diff --stat ,以显示所有已更改的行/字符更改的文件。

enter image description here

正如您所看到的,这些文件中的许多文件都没有进行任何更改。但是,它们仍显示在我的 git status 已修改部分中。

我如何将这些文件删除或恢复正常,因为我从未使用这些文件更改任何内容?

2 个答案:

答案 0 :(得分:5)

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

git config core.autocrlf

请务必将其设为false:git config core.autocrlf falsesee more here)。

然后仔细检查.gitattributes个文件的存在和内容。他们也可以用core.eol directives来影响eol。

答案 1 :(得分: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