不要忽视 .gitignore
创始人
2024-03-02 05:41:11
0

使用 .gitignore 文件是提高代码和 Git 仓库质量的最佳实践之一。

我注意到很多开发者没有使用 .gitignore 文件,尽管使用 .gitignore 文件来指定你不希望 Git 在版本控制中跟踪的文件是最佳实践之一。.gitignore 可以提高代码质量,所以你不应该忽略版本库中的 .gitignore

什么是 .gitignore?

Git 仓库中的文件可以是:

  1. 未跟踪的:未被暂存或提交的变更。
  2. 跟踪的:已暂存或提交的变更。
  3. 忽略的:你让 Git 忽略的文件。

有些文件你希望 Git 忽略,不要在你的版本库中跟踪它,这些文件包括许多自动生成的或特定于平台的文件,以及其他本地配置文件,如:

  1. 含有敏感信息的文件
  2. 编译出的代码,如 .dll.class
  3. 系统文件,如 .DS_StoreThumbs.db
  4. 含有临时信息的文件,如日志、缓存等。
  5. 生成的文件,如 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 文件的基本规则:

  1. 任何以哈希(#)开头的行都是注释。
  2. \ 字符可以转义特殊字符。
  3. / 字符表示该规则只适用于位于同一文件夹中的文件和文件夹。
  4. 星号(*)表示任意数量的字符(零个或更多)。
  5. 两个星号(**)表示任意数量的子目录。
  6. 一个问号(?)代替零个或一个字符。
  7. 一个感叹号(!)会反转特定的规则(即包括了任何被前一个模式排除的文件)。
  8. 空行会被忽略,所以你可以用它们来增加空间,使你的文件更容易阅读。
  9. 在末尾添加 / 会忽略整个目录路径。

本地与全局 .gitignore 文件的比较

有两种类型的 .gitignore 文件:

  • 本地:放在 Git 仓库的根目录下,只在该仓库中工作,并且必须提交到该仓库中。
  • 全局:放在你的主目录根目录下,影响你在你的机器上使用的每个仓库,不需要提交。

很多开发者在项目仓库中使用本地的 .gitignore 文件,但很少有人使用全局的 .gitignore 文件。使用全局文件最显著的优势是,你不需要提交就可以使用它,而且做一个改动会影响你所有的版本库。

Git 忽略的优势

除了确保特定的文件不被 Git 追踪之外,使用 .gitignore 文件还有其他好处。

  1. 通过忽略不需要的文件,它可以帮助你保持代码库的干净。
  2. 它可以控制代码库的大小,这在你正在做一个大项目的时候特别有用。
  3. 你的每一次提交、推送和拉取请求都将是干净的。

结束语

Git 很强大,但归根结底,它只是一个计算机程序而已。使用最佳实践并保持你的代码仓库稳定是一个团队的努力,其中要做到一件事就是使用 .gitignore 文件。


via: https://opensource.com/article/20/8/dont-ignore-gitignore

作者:Rajeev Bera 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

git

相关内容

X平台正式开源推荐算法
据1月20日声明,马斯克旗下社交媒体平台X正式将新的平台算法开源,...
2026-01-20 17:19:29
十方融海小智AI接入设备破...
近日,深圳科技企业十方融海传来消息,其自主研发的小智AI接入硬件设...
2026-01-09 19:17:51
腾讯混元开源翻译模型1.5...
12月30日,腾讯混元宣布推出并开源翻译模型1.5,共包含两个模型...
2025-12-30 20:46:31
开源技术实训室——职院开源...
一、开源技术实训室概述 (一)定义与定位 开源技术实训室是一个基...
2025-12-29 08:46:36
InterDigital已...
(全球TMT2025年10月31日讯)InterDigital 1...
2025-10-31 12:15:39
开源快讯 | 近期开源资讯...
开源生态建设加速技术创新,促进全球协作,是科技发展的强大驱动力,其...
2025-10-31 11:44:04

热门资讯

如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
硬核观察 #1249 LG 洗... #1 LG 洗衣机每天上传近 4GB 的数据?一个名为 Johnie 的 LG 洗衣机用户发现,他的...
2024 年 Linux 和开... 让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造...