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

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

如何让Git忽略Hello.class?


当前回答

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

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

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

git藏 git拉 Git隐藏pop

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

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

其他回答

问题是.gitignore忽略了之前没有跟踪的文件(git add)。执行git reset name_of_file命令取消该文件并保留它。如果你也想从存储库中删除给定的文件(在推送之后),请使用git rm——cached name_of_file。

在文件.gitignore中添加以下行:/<file_name>如果你想从GIT中排除所有类文件,在.gitignore中添加以下行:*<file_extension>

通过创建一个.gitignore文件。参见这里的详细信息:Git书-忽略文件

还可以看看这个:如何在不使用.gitignore的情况下让Git忽略文件?

您可能遇到的一种情况是.gitignore不会忽略您之前提交的文件。您应该首先从存储库中删除或移动这些文件,提交刚才所做的更改,然后将“*.class”添加到.gitignore。

首先创建一个.gitignore文件,我们必须在其中存储要忽略的文件和目录的名称。

忽略一个目录;

name_of_directory/

忽略文件;

name_of_file

我们不需要提供要忽略的文件或目录的完整路径;我们只需要提供它的名字。

如果你想忽略所有具有相同扩展名的文件;

*.pyc  #will ignore all files with pyc extention

此外,上述内容仅在未将文件添加到Git时才会第一次起作用。但是,如果我的错误是您向Git添加了一个文件,现在您希望在其余的提交中忽略它,您需要首先通过运行以下命令清除关于该文件的Git缓存;

git rm -r --cached <path_of_the_file>

其余部分是相同的,即将名称添加到.gitignore文件中。