忽略Sourcetree中的已提交文件

问题描述:

我对git仍然陌生。由于我不需要公开存储库,所以我选择了Bitbucket。作为我的桌面客户端,我使用Atlassian Sourcetree。忽略Sourcetree中的已提交文件

我正在使用Eclipse IDE开发Java项目。就像所有人一样,我不需要在更改后的文件中看到类文件,但是这些文件已经被提交并被拖入我的远程存储库。
现在我需要SourceTree不要将这些类文件显示为已更改的文件,只要我对.java文件进行更改。

正如我通过这么多的问题和答案所了解的那样,.gitignore文件中的条目本身不能简单地忽略类文件,因为它们已经被提交和拉取。
为此,据我所知,我应该做的是忽略源代码树中的文件并提交它。那么只有.gitignore文件中的条目才会做我们需要的。 (这是我的理解,如果我错了,请纠正我)。

现在我的问题是,ignore选项灰显;作为社区建议首先选择Stop Tracking选项并选择ignore选项的解决方案。但是,当我停止跟踪时,不会出现任何更改。
根据社区,该文件应标有蓝色图标。但这不是我的情况。即使我没有更改图标,我然后尝试选择忽略选项。但它仍然是灰色的。即使执行这些步骤后,当我对.java文件进行更改时,.class文件也会出现在已更改的文件列表中。

这里有什么问题?为什么我没有完成这项工作?我做错了什么?

+0

将文件添加到存储库中已有的'.gitignore'不会执行任何操作。如果是这种情况,那么你首先需要'git -rm'文件,按下,然后将它添加到'.gitignore'。 –

+0

谢谢。我可以'git -rm'包含所有类文件的整个文件夹 – vigamage

+0

只需使用通配符,例如'git -rm some/path/*。java' –

我现在的问题是,ignore选项是灰色的;作为社区建议首先选择停止跟踪选项并选择忽略选项的解决方案。

据 “What is the difference between Stop Tracking and Discard File in git SourceTree”:

您应该使用Stop Tracking
之后,如果您看到Unstaged文件中列出的文件,您可以在SourceTree中使用right-click > Ignore...更新您的.gitignore文件以在将来忽略该文件。

在你的情况虽然,而不是添加文件逐一到.gitignore,平硐一个.gitignore在你的回购的根目录,并添加:

*.class 
+0

停止跟踪不会使文件进入未分档的文件;所以我不能忽视它。 – vigamage

+0

在我的回购中,我有'.gitignore'文件和'.classpath'条目。我认为这是正确的。不是吗? – vigamage

+0

@vigamage然后切换到命令行并尝试(用于测试)'git rm -r obj'(如果你的'.class'位于'obj'文件夹中)不需要通配符 – VonC

输入git的状态显示您修改后的代码更改。然后添加您的不需要的文件在。 gitignore。 最后添加你的文件并提交。