Git Ignore命令
在Git中,“ignore”这个术语用于指定Git应该忽略的故意未跟踪的文件。这不会影响Git已经跟踪的文件。
有时候,你不想将文件发送到GitHub之类的Git服务。我们可以在Git中指定要忽略的文件。
Git的文件系统分为三类:
已跟踪:
已跟踪的文件是之前已经提交或者暂存的文件。
未跟踪:
未跟踪的文件是之前没有提交或者暂存的文件。
已忽略:
已忽略的文件是由Git明确忽略的文件。我们必须告诉Git忽略这些文件。
通常,已忽略的文件是由存储库源代码派生出的文件或者其他不应该提交的文件。一些常见的已忽略文件如下:
- 依赖缓存
- 已编译的代码
- 构建输出目录,例如/bin、/out或/target
- 运行时生成的文件,例如.log、.lock或.tmp
- 隐藏的系统文件,例如Thumbs.db或.DS_Store
- 个人IDE配置文件,例如.idea/workspace.xml
Git Ignore 文件
Git忽略文件是一个文件,可以是任何文件或者包含要忽略的所有文件的文件夹。开发人员会忽略不需要执行项目的文件。Git本身会创建许多系统生成的被忽略的文件。通常,这些文件是隐藏文件。有几种指定忽略文件的方法。已忽略文件可以在放置在存储库的根文件夹中的 .gitignore 文件中跟踪。
没有明确的git ignore命令;而是当你有新的文件需要忽略时,必须手动编辑和提交.gitignore文件。.gitignore文件包含与存储库中的文件名匹配的模式,用于确定是否忽略它们。
如何手动忽略文件
Git中没有忽略文件的命令;相反,有几种方法可以在Git中指定忽略文件。其中最常见的方法之一是 .gitignore 文件。让我们通过一个示例来理解。
.gitignore文件:
.gitignore文件中定义了忽略文件的规则。.gitignore文件是一个包含所有被忽略文件格式和文件的文件。我们可以在不同的目录中创建多个忽略文件。让我们通过一个示例来了解它是如何工作的:
步骤1: 如果您的目录中还没有名为.gitignore的文件,请创建一个。可以使用touch或cat命令来创建文件,命令如下所示:
$ touch .gitignore
或者
$ cat .gitignore
以上命令将在您的目录中创建一个.gitignore文件。记住,您正在工作的是您想要的目录。考虑下面的命令:
上述命令将创建一个名为.gitignore的文件。我们可以将其跟踪到仓库中。请参考下面的图像:
如您所见,上图显示我为我的存储库创建了一个.gitignore文件。
步骤2: 现在,请将要忽略的文件和目录添加到 .gitignore 文件中。要将文件和目录添加到.gitignore文件中,打开文件并键入文件名、目录名和要忽略的文件和目录的模式。参考下图:
在上面的文件中,我给出了一种格式和一个要忽略的目录。上面的格式 .txt 将忽略存储库中的所有文本文件,而 /newfolder/ 将忽略newfolder及其子内容。我们也可以只给出要忽略的任何文件的名称。
步骤3: 现在,要在Git上共享它,我们必须提交它。.gitignore文件目前仍在暂存区域;我们可以通过git status命令跟踪它。考虑以下输出:
$ git add .gitignore
$ git commit -m "ignored directory created."
上述命令将在Git上共享文件.gitignore。请看下面的输出。
现在,我们已经在Git中忽略了一个模式文件和一个目录。
在.gitignore文件中放置模式的规则:
可放置在.gitignore文件中的模式规则如下:
- Git会忽略空白行或以#开头的行。
- 只有标准的全局模式适用,并且会在整个工作树中递归应用。
- 模式可以以斜杠(/)开头以避免递归。
- 模式可以以斜杠(/)结尾以指定一个目录。
- 通过以感叹号(!)开始可以对模式进行否定。
全局.gitignore文件
我们知道我们可以为一个项目创建多个.gitignore文件。但是Git也允许我们创建一个通用的.gitignore文件,该文件可以用于整个项目。这个文件被称为全局.gitignore文件。要创建一个全局.gitignore文件,请在终端上运行以下命令:
$ git config --global core.excludesfile ~/.gitignore_global
上述命令将为仓库创建一个全局的 .gitignore 文件。
如何列出被忽略的文件
在Git中,我们可以列出被忽略的文件。有多种命令可以列出被忽略的文件,但最常用的方式是使用 ls命令 。要列出被忽略的文件,请运行以下命令:
$ git ls-files -i --exclude-standard
或者
$ git ls-files --ignore --exclude-standard
上述命令将列出仓库中所有可忽略的文件。在给定的命令中, -I 选项表示忽略,并且 --exclude-standard 用于指定排除模式。请参考下面的输出结果:
从上面的输出我们可以看到, ls 命令是从仓库中列出可用的被忽略的文件。