安卓系统

忽略git(.gitignore)中的文件和目录

互联网人都该懂点 Git #06 gitignore 和 fork 同步

互联网人都该懂点 Git #06 gitignore 和 fork 同步

目录:

Anonim

通常,在使用Git的项目上工作时,您会希望排除将特定文件或目录推送到远程存储库中的情况。

.gitignore 文件指定Git应该忽略的未跟踪文件。

应该忽略哪些文件?

忽略的文件通常是特定于平台的文件,或者是从构建系统自动创建的文件。 一些常见的示例包括:

  • 运行时文件,例如日志,锁,缓存或临时文件。带有敏感信息的文件,例如密码或API密钥。已编译的代码,例如 .class .o .Dependency目录,例如 /vendor /node_modules .Build目录,例如 /public /out /dist .System文件,例如 .DS_Store Thumbs.db IDE或文本编辑器配置文件。

.gitignore

通常将本地 .gitignore 文件放置在存储库的根目录中。 但是,您可以在存储库中的不同子目录中创建多个 .gitignore 文件。 .gitignore 文件中的模式相对于文件所在目录进行匹配。

驻留在较低级别目录(子目录)中的文件中定义的模式优先于较高级别目录中的模式。

本地 .gitignore 文件与其他开发人员共享,并且应包含对存储库的所有其他用户有用的模式。

个人无视规则

应在 .git/info/exclude 文件中设置特定于本地存储库的模式,并且不应将其分发到其他存储库。

例如,您可以使用此文件来忽略个人项目工具中生成的文件。

全局 .gitignore

Git还允许您创建一个全局 .gitignore 文件,您可以在其中为本地系统上的每个Git存储库定义忽略规则。

该文件可以命名为任意名称,并存储在任何位置。 保留此文件的最常见位置是主目录。 您必须手动创建文件并配置Git才能使用它。

例如,要将 ~/.gitignore_global 设置为全局Git忽略文件,您可以执行以下操作:

  1. 创建文件:

    touch ~/.gitignore_global

    将文件添加到Git配置:

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

    使用文本编辑器打开文件,然后向其中添加规则。

全局规则对于忽略您永远不想提交的特定文件(例如带有敏感信息的文件或已编译的可执行文件)特别有用。

忽略以前提交的文件

您的工作副本中的文件可以被跟踪也可以被跟踪。

要忽略以前提交的文件,您需要取消暂存并将其从索引中删除,然后在 .gitignore 为该文件添加规则:

git rm --cached filename

--cached 选项告诉git不要从工作树中删除文件,而只是从索引中删除它。

要递归删除目录,请使用 -r 选项:

git rm --cached filename

递归删除文件时,使用 -n 选项将执行“空运行”并显示要删除的文件:

git rm -r -n directory

调试 .gitignore 文件

有时,确定为什么要忽略特定文件可能具有挑战性,尤其是在使用多个 .gitignore 文件或复杂模式的情况下。 在这里,带有 -v 选项的 git check-ignore 命令很方便,它告诉git显示有关匹配模式的详细信息。

例如,要检查为什么忽略 www/yarn.lock 文件,可以运行:

git check-ignore -v www/yarn.lock

输出显示 gitignore 文件的路径,匹配行的编号和实际模式。

www/.gitignore:31:/yarn.lock www/yarn.lock

该命令还接受多个文件名作为参数,并且该文件不必存在于您的工作树中。

显示所有忽略的文件

带有 --ignored 选项的 git status 命令显示所有被忽略文件的列表:

git status --ignored

结论

.gitignore 文件使您可以从检入存储库中排除文件。 该文件包含用于描述应忽略哪些文件和目录的定位模式。

gitignore.io是一项在线服务,可让您为操作系统,编程语言或IDE生成 .gitignore 文件。