Git忽略不排除我的.project文件

时间:2017-03-24 02:23:12

标签: java git

我第一次使用git而且我正在尝试提交。我想忽略所有.project和.settings文件,所以我转到我的.gitignore文件并添加.project.settings并保存。当我这样做时,.settings文件不再出现,但是,当我git -status时,我仍然会看到我的.project文件。另外,为什么.xmljava文件位于.jar文件的不同部分:

enter image description here

1 个答案:

答案 0 :(得分:1)

您的git status输出显示两种类型的文件:

  • 未提交提交的更改

这些是Git正在跟踪的文件,这些文件自上次提交后已被修改。但是,这些变化还没有上演。除非您使用git add暂存更改,否则它们不会被提交。以下是将更改分段到web.xml文件的方法:

git add path/to/web.xml

假设你刚刚开始工作,那么最有可能解释为什么.project出现被Git跟踪的原因是你以某种方式添加了它。要解决此问题,您可以尝试使用:

git rm --cached .project

这将删除Git跟踪的.project文件。它也会将它从远程存储库中删除,但由于你刚刚开始工作而尚未推进,这是一个没有实际意义的点。

  • 未跟踪文件

这些是Git完全忽略的文件。从Git的角度来看,这些文件并不存在。我可以看到你有许多JAR文件列为未跟踪,这可能是一件好事,因为一般来说,将二进制文件,特别是依赖项添加到Git存储库是个坏主意。如果您看到一个列为未跟踪的源文件,您还可以运行git add将该文件添加到Git。

将二进制文件添加到Git存储库通常被认为是不好的做法的原因是Git不能很好地处理二进制文件的差异。假设您添加了1MB的JAR文件。每次它改变,如果你做一些开源的东西,这可能是相当频繁的,必须为该二进制文件存储差异。但是,Git经常将diff解释为删除旧文件并将其替换为新文件的整个内容。换句话说,Git基本上为每个更改版本化了整个二进制文件。随着时间的推移,这可能会导致您的存储库变得庞大和臃肿,并且很难从您的历史记录中删除这些二进制文件。因此,除非绝对必要,否则请避免在您的Git存储库中存储二进制文件。