我注意到许多开发人员不使用 .gitignore 文件,即使使用它来指定您不希望 Git 在版本控制中跟踪的文件是最佳实践。因为 .gitignore 可以提高您的代码质量,所以您不应该在您的仓库中忽略.gitignore。
什么是 .gitignore?
您工作 Git 仓库中的文件可以是
- 未跟踪:尚未暂存或提交的更改
- 已跟踪:已暂存或提交的更改
- 已忽略:您告诉 Git 忽略的文件
有些文件您希望 Git 忽略并且不在您的仓库中跟踪。这些文件包括许多自动生成或平台特定的文件,以及其他本地配置文件,例如
- 包含敏感信息的文件
- 编译后的代码,例如
.dll
或.class
- 系统文件,如
.DS_Store
或Thumbs.db
- 包含临时信息的文件,例如日志、缓存等。
- 生成的文件,例如
dist
文件夹
如果您不希望 Git 在您的仓库中跟踪某些文件,则没有可以使用的Git 命令。(虽然您可以使用 git rm
命令停止跟踪文件,例如git rm --cached
。)相反,您需要使用 .gitignore 文件,这是一个文本文件,告诉 Git 哪些文件不跟踪。
创建 .gitignore 文件很容易;只需创建一个文本文件并将其命名为 .gitignore。记住在文件名的开头添加一个点 (.
)。就是这样!
.gitignore 文件的编写规则
根据文档,“.gitignore 文件中的每一行都指定一个模式。”
在这种上下文中,“模式”可以指特定的文件名,或者指文件名的一部分与通配符组合。换句话说,example.txt 是一个有效的模式,它匹配名为 example.txt 的文件,而 ex*txt 是一个有效的模式,它匹配名为 example.txt 的文件以及名为 export.txt 的文件。
以下是一些基本规则,可帮助您正确设置 .gitignore 文件
- 任何以井号 (
#
) 开头的行都是注释。 \
字符转义特殊字符。/
字符表示该规则仅适用于位于同一文件夹中的文件和文件夹。- 星号 (
*
) 表示任意数量的字符(零个或多个)。 - 两个星号 (
**
) 指定任意数量的子目录。 - 问号 (
?
) 替换零个或一个字符。 - 感叹号 (
!
) 指定反转规则(即,它包括先前模式排除的任何文件)。 - 空行将被忽略,因此您可以使用它们添加空格并使您的文件更易于阅读。
- 在末尾添加
/
会忽略整个目录路径。
本地与全局 .gitignore 文件
有两种类型的 .gitignore 文件
- 本地:放置在您的 Git 仓库的根目录中,仅在该仓库上工作,并且必须提交到仓库
- 全局:放置在您主目录的根目录中,影响您在机器上使用的每个仓库,不需要提交
许多开发人员在其项目仓库中使用本地 .gitignore 文件,但很少有人使用全局 .gitignore 文件。使用全局文件最显着的优点是您无需提交即可使用它,并且进行一项更改会影响您的所有仓库。
Git ignore 的优势
除了确保特定文件不被 Git 跟踪之外,使用 .gitignore 文件还有其他优势
- 它通过忽略不需要的文件,帮助您保持代码仓库的整洁。
- 它使您的仓库大小保持在可控范围内,如果您正在处理大型项目,这将特别有帮助。
- 您进行的每次提交、推送和拉取请求都将是干净的。
结论
Git 很强大,但最终,它只是另一个计算机程序。使用最佳实践并保持代码仓库稳定是团队的共同努力,而其中一部分就是使用 .gitignore 文件。
2 条评论