876

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

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

我怎样才能让 Git 忽略Hello.class

4

27 回答 27

950

问题在于,.gitignore它只忽略了之前(按git add)未跟踪的文件。运行git reset name_of_file以取消暂存文件并保留它。如果您还想从存储库中删除给定文件(推送后),请使用git rm --cached name_of_file.

于 2010-11-29T22:16:57.660 回答
289

如何忽略新文件

全球范围内

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

本地

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

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

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

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

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

git update-index --no-assume-unchanged <file1> <file2> <file3>
于 2014-04-24T04:06:57.117 回答
165

将以下行添加到 .gitignore:

/Hello.class

这将从 git 中排除 Hello.class。如果您已经提交了它,请运行以下命令:

git rm Hello.class

如果要从 git 中排除所有类文件,请将以下行添加到 .gitignore:

*.class
于 2010-11-29T22:15:11.217 回答
131

1) 创建一个.gitignore文件。为此,您只需创建一个.txt文件并更改扩展名,如下所示:

在此处输入图像描述

然后您必须更改名称,在 cmd 窗口中写入以下行:

 rename git.txt .gitignore

git.txt您刚刚创建的文件的名称在哪里。

然后您可以打开该文件并将所有不想添加到存储库中的文件写入。例如,我的看起来像这样:

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#Project files
[Bb]uild/

#Subversion files
.svn

# Office Temp Files
~$*

一旦你有了这个,你需要将它添加到你的 Git 存储库中。您必须将文件保存在存储库所在的位置。

然后在 Git Bash 中,您必须编写以下行:

git config --global core.excludesfile ~/.gitignore_global

如果存储库已经存在,那么您必须执行以下操作:

  1. git rm -r --cached .
  2. git add .
  3. git commit -m ".gitignore is now working"

如果第 2 步不起作用,那么您应该编写要添加的文件的整个路径。

于 2015-02-17T14:22:05.240 回答
73

忽视:

git update-index --assume-unchanged <path/to/file>

要撤消忽略:

git update-index --no-assume-unchanged <path/to/file>
于 2016-11-11T06:06:07.117 回答
53

您可以使用以下方法忽略/不忽略跟踪文件中的更改。

  1. 对于忽略:git update-index --assume-unchanged <file>
  2. 要恢复被忽略的文件:git update-index --no-assume-unchanged <file>
于 2013-05-30T10:51:09.153 回答
22

.gitignore在 .git 所在的目录中创建一个。您可以列出其中的文件,并用换行符分隔。您还可以使用通配符:

*.o
.*.swp
于 2010-11-29T22:15:13.783 回答
16

来自官方 GitHub 站点:

如果您已经签入了一个文件,并且您想忽略它,那么如果您稍后添加规则,Git 将不会忽略该文件。在这些情况下,您必须先取消跟踪文件,方法是在终端中运行以下命令:

git rm --cached FILENAME

或者

git rm --cached .
于 2017-05-23T10:24:35.983 回答
14
  1. 转到 .gitignore 文件并添加要忽略的文件的条目
  2. git rm -r --cached .
  3. 现在运行git add .
于 2020-05-10T12:10:25.847 回答
12

你应该写类似

*.class

到你的.gitignore文件中。

于 2010-11-29T22:14:57.387 回答
8

将要忽略的文件添加到 file .gitignore

*。班级

*.项目

*.prefs

*。项目

于 2017-02-24T04:33:47.917 回答
5

通过创建 .gitignore 文件。有关详细信息,请参见此处:Git Book - 忽略文件

还要检查一下:如何让 Git 在不使用 .gitignore 的情况下忽略文件?

于 2010-11-29T22:15:40.153 回答
5

如果你已经提交了文件并且你试图通过添加到.gitignore文件来忽略它,Git 不会忽略它。为此,您首先必须执行以下操作:

git rm --cached FILENAME

如果您刚开始项目并且想要将一些文件添加到 Git 忽略,请按照以下步骤创建 Git 忽略文件:

  1. 导航到您的 Git 存储库。
  2. 输入“touch .gitignore”,它将创建一个.gitignore文件。
于 2018-08-02T12:25:24.663 回答
5
git reset filename
git rm --cached filename

然后添加您要忽略的文件,

然后提交并推送到您的存储库

于 2020-08-03T06:32:30.233 回答
5

首先创建一个 .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 文件中添加名称。

于 2020-10-30T04:34:24.660 回答
3

您还可以使用 .gitattributes(而不是 .gitignore)来排除整个文件类型。该文件非常不言自明,但我将内容粘贴在这里以供参考。注意最后一行(*.class binary):

# 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
于 2016-12-29T08:03:22.937 回答
3

我对文件“dump.rdb”有类似的问题。
我尝试以各种方式将此文件添加到 .gitignore 文件中,但只有一种方式有效。

在 .gitignore 文件的末尾添加您的文件名

注意:将文件添加到其他任何地方都不起作用。

例如,参见:https ://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore

于 2017-09-27T09:14:07.383 回答
3

我试过这个 -

  1. 列出我们要忽略的文件

git status .idea/xyz.xml .idea/pqr.iml Output .DS_Store

  1. 复制步骤#1 的内容并将其附加到 .gitignore 文件中。

echo " .idea/xyz.xml .idea/pqr.iml Output .DS_Store" >> .gitignore

  1. 证实

git status .gitignore

同样,我们可以添加目录及其所有我们想在 git status 中忽略的子目录/文件,我从目录中directoryname/*执行了这个命令。src

于 2019-11-22T09:04:02.113 回答
2

将以下行添加到 .git/info/exclude:
Hello.class

于 2017-06-15T10:19:45.547 回答
1

此网页在使用.gitignore.

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

于 2017-01-05T11:17:54.157 回答
0

我试过了--assume-unchanged,也试过了,.gitignore但都没有奏效。它们使切换分支变得困难,并且难以合并来自其他分支的更改。这是我的解决方案:

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

在我之前,我存储了更改的文件。拉后,我做了一个stash pop

  1. 混帐藏匿
  2. git 拉
  3. git stash 弹出

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

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

于 2017-07-05T19:17:49.477 回答
0

用于编译的代码。写吧

.class or .o
于 2020-07-08T17:55:32.477 回答
0

您也可以使用例如 SourceTree 并在您添加到分支并已修改的文件上按 ppm,然后选择“停止跟踪”。这个文件现在将被指定一个问号图标,当你再次在这个文件上 ppm 时,你现在可以选择“忽略”。这将通过它的相对路径将此特定文件添加到 gitgnore。

于 2021-06-22T10:29:36.290 回答
0

直接来自 Atlassian:https ://www.atlassian.com/git/tutorials/saving-changes/gitignore

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

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

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

于 2021-08-01T22:10:34.617 回答
0

如果在删除该文件之前将任何文件添加到 git,请将该文件添加到 .gitignore 中。

示例:如果在添加 spm 依赖项期间无法忽略 package.resolved 文件。我已将以下行添加到我的 .gitignore 文件中

Packages/
Package.pins
Package.resolved
*.xcworkspace

并删除了 package.resolved 文件。现在 git 开始忽略我的 package.resolved 文件。

于 2021-08-12T06:53:27.313 回答
0

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

于 2022-02-09T04:40:34.197 回答
0

如果要忽略已签入的文件,则必须在添加规则以忽略它之前取消跟踪该文件:

$ git rm --cached FILENAME

现在提交更改并将文件路径添加到 .gitignore 文件。

于 2022-02-28T18:38:14.997 回答