我有一个存储库文件,Hello.java。当我编译它时,会生成一个额外的Hello.class文件。

我在.gitignore文件中为Hello.class创建了一个条目。然而,该文件似乎仍然被跟踪。

如何让Git忽略Hello.class?


当前回答

直接来自Atlassian: .gitignore

如果您希望忽略过去提交的文件,则需要从存储库中删除该文件,然后为其添加.gitignore规则。

在git rm中使用——cached选项意味着该文件将从存储库中删除,但它将作为一个被忽略的文件保留在工作目录中。

您的工作目录中仍然应该有该文件,但它将无法推送到远程存储库,除非您强制执行。

其他回答

如何忽略新文件

在全球范围内

将你想忽略的路径添加到你的.gitignore文件中(并提交它们)。这些文件条目也将应用于其他签出存储库的文件。

在本地

将你想忽略的路径添加到你的.git/info/exclude文件中。这些文件条目将只应用于您的本地工作副本。

如何忽略已更改的文件(临时)

为了忽略已更改的文件,将其列为已修改,您可以使用以下git命令:

git update-index --assume-unchanged <file1> <file2> <file3>

要恢复这种无知,请使用以下命令:

git update-index --no-assume-unchanged <file1> <file2> <file3>

我已经尝试了-假设-不变和。gitignore,但都没有工作得很好。它们使得切换分支和合并来自其他分支的变更变得困难。这是我的解决方案:

提交时,我手动从更改列表中删除这些文件

在我取出之前,我会把修改过的文件藏起来。抽完之后,我再抽一次。

git藏 git拉 Git隐藏pop

步骤3有时会触发合并,并可能导致需要解决的冲突,这是一件好事。

这允许我保留不与团队中的其他人共享的本地更改。

你应该这样写

*.class

到你的。gitignore文件。

在使用.gitignore时,此网页可能有用并节省时间。

它会自动为不同的ide和操作系统生成.gitignore文件,其中包含您通常不想拉到Git存储库中的特定文件/文件夹(例如,特定于ide的文件夹和配置文件)。

您还可以使用.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