如何在Git中忽略某些文件

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

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

如何让Git忽略Hello.class

1361104 次浏览

你应该写点什么

*.class

.gitignore文件。

将以下行添加到文件. gitignore

/Hello.class

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

git rm Hello.class

如果您想从Git中排除所有类文件,请将以下行添加到. gitignore

*.class

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

*.o.*.swp

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

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

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

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

  1. 忽略:git update-index --assume-unchanged <file>
  2. 对于恢复被忽略的文件:git update-index --no-assume-unchanged <file>

如何忽略新文件

全球

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

本地

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

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

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

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

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

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

在windows

  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*.xmlipch/obj/[Bb]in[Dd]ebug*/[Rr]elease*/Ankh.NoLoad
# Tooling_ReSharper*/*.resharper[Tt]est[Rr]esult*
# Project files[Bb]uild/
# Subversion files.svn
# Microsoft Office temporary files~$*

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

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

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

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

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

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

忽略:

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

要撤消忽略:

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

您还可以使用. git属性(而不是. 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

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

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

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

*.类

*.项目

*. prefs

*.项目

来自GitHub官方网站:

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

git rm --cached FILENAME

git rm --cached .

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

我尝试了--assume-unchanged.gitignore,但都不成功。它们很难切换分支,也很难合并来自其他分支的更改。这是我的解决方案:

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

在我之前,我藏匿更改的文件。在拉取之后,我做了stashpop

  1. git stash
  2. git拉取
  3. git stash pop

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

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

我有一个类似的问题与文件"dump.rdb".
我尝试以各种方式将此文件添加到. gitignore文件,但只有一种方法有效。

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

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

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

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

git rm --cached FILENAME

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

  1. 导航到您的Git存储库。
  2. 输入“touch. gitignore”,这将创建一个.gitignore文件。

我试过这个-

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

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

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

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

  3. 验证

    git status .gitignore

同样,我们可以使用directoryname/*在Git状态下添加一个目录及其所有子目录和文件。我从src目录执行此命令。

  1. 转到. gitignore文件并添加要忽略的文件的条目
  2. 运行git rm -r --cached .
  3. 现在运行git add .

对于已编译的代码,只需编写:

.class or .o

用途:

git reset filenamegit rm --cached filename

然后添加您要忽略的文件。然后提交并推送到您的存储库。

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

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

艾特莱森:. gitignore

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

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

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

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

示例:如果在添加spm依赖项时无法忽略package.resolved文件。

我在我的. gitignore文件中添加了以下行:

Packages/Package.pinsPackage.resolved*.xcworkspace

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

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

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

git rm --cached FILENAME

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

要从GITgit rm --cached <file_name>中删除已经提交/暂存的文件,请将以下行添加到文件.gitignore/<file_name>如果要从Git中排除所有类文件,请将以下行添加到.gitignore*<file_extension>

如果您想忽略某些文件,请按照以下步骤操作

  1. 进入位于您的工作目录中的. git文件夹。
  2. 进入“信息”文件夹。
  3. 您将找到一个名为“排除”的文件。
  4. 将要忽略的文件名添加到此文件中。

如果您在目录中看不到. git文件夹,请在file-Explorer视图面板中选中Hidden-Item字段。