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