我有一个存储库文件,Hello.java。当我编译它时,会生成一个额外的Hello.class文件。
我在.gitignore文件中为Hello.class创建了一个条目。然而,该文件似乎仍然被跟踪。
如何让Git忽略Hello.class?
我有一个存储库文件,Hello.java。当我编译它时,会生成一个额外的Hello.class文件。
我在.gitignore文件中为Hello.class创建了一个条目。然而,该文件似乎仍然被跟踪。
如何让Git忽略Hello.class?
当前回答
您还可以使用.gitattributes(而不是.gitignore)来排除整个文件类型。该文件是不言自明的,但我将内容粘贴在这里以供参考。注意最后一行(*.class二进制):
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
其他回答
来自GitHub官方网站:
如果您已经签入了一个文件,并且希望忽略它,那么如果您稍后添加规则,Git将不会忽略该文件。在这些情况下,您必须首先取消跟踪文件,通过运行以下命令在您的终端:
git rm --cached FILENAME
or
git rm --cached .
你应该这样写
*.class
到你的。gitignore文件。
你也可以使用Sourcetree,在你添加到分支并修改过的文件上按下rmb,然后选择“停止跟踪”。这个文件现在将被指定为一个问号图标,当你再次在这个文件上rmb时,你现在可以选择“忽略”。这将通过相对路径将特定文件添加到gitgnore中。
在.gitignore文件中添加以下行:
/Hello.class
这将从Git中排除Hello.class。如果已经提交,则执行以下命令:
git rm Hello.class
如果你想从Git中排除所有类文件,在.gitignore中添加以下行:
*.class
直接来自Atlassian: .gitignore
如果您希望忽略过去提交的文件,则需要从存储库中删除该文件,然后为其添加.gitignore规则。
在git rm中使用——cached选项意味着该文件将从存储库中删除,但它将作为一个被忽略的文件保留在工作目录中。
您的工作目录中仍然应该有该文件,但它将无法推送到远程存储库,除非您强制执行。