我注意到很多开发者没有使用 .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 文件
- 任何以井号 (
#
) 开头的行都是注释。 \
字符转义特殊字符。/
字符表示该规则仅适用于位于同一文件夹中的文件和文件夹。- 星号 (
*
) 表示任意数量的字符(零个或多个)。 - 两个星号 (
**
) 指定任意数量的子目录。 - 问号 (
?
) 替换零个或一个字符。 - 感叹号 (
!
) 指定反转规则(即,它包括先前模式排除的任何文件)。 - 空白行被忽略,因此您可以使用它们来添加空间并使您的文件更易于阅读。
- 在末尾添加
/
会忽略整个目录路径。
本地 vs. 全局 .gitignore 文件
有两种类型的 .gitignore 文件
- 本地: 放置在 Git 存储库的根目录中,仅在该存储库上有效,并且必须提交到该存储库
- 全局: 放置在您的主目录的根目录中,影响您在机器上使用的每个存储库,不需要提交
许多开发人员在其项目存储库中使用本地 .gitignore 文件,但很少有人使用全局 .gitignore 文件。 使用全局文件最重要的优势在于您不需要提交它即可使用它,并且进行一次更改会影响所有存储库。
Git ignore 的优势
除了确保 Git 不跟踪特定文件之外,使用 .gitignore 文件还有其他优势
- 它通过忽略不需要的文件来帮助您保持代码存储库的清洁。
- 它可以控制您的存储库大小,如果您正在处理大型项目,这将特别有用。
- 您进行的每次提交、推送和拉取请求都将是干净的。
结论
Git 非常强大,但最终,它只是另一个计算机程序。 使用最佳实践并保持代码仓库的稳定是一项团队工作,其中一部分是使用 .gitignore 文件。
2 条评论