为什么说.gitignore不能忽视

admin10个月前笔记102

image.png

什么是 .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 忽略的优势

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

  • 通过忽略不需要的文件,它可以帮助你保持代码库的干净。

  • 它可以控制代码库的大小,这在你正在做一个大项目的时候特别有用。

  • 你的每一次提交、推送和拉取请求都将是干净的。

结束语

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


相关文章

通过 SSH 实现 TCP / IP 隧道(端口转发)

通过 SSH 实现 TCP / IP 隧道(端口转发)

对于 Secure Shell (SSH)[1] 这样的网络协议来说,其主要职责就是在终端模式下访问一个远程系统。因为 SSH 协议对传输数据进行了加密,所以通过它在远端系统执行命...

MySQL 8 主从延迟监控

MySQL 8 主从延迟监控

我们中的许多老 MySQL DBA 都会使用 SHOW REPLICA STATUS 中Seconds_Behind_Source 来查找(异步)复制的状态和监控延迟。请注意新术语,以前的版本中我们执...

最牛X的GCC 内联汇编

最牛X的GCC 内联汇编

1. 简介1.1 版权许可Copyright (C) 2003 Sandeep S.本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的 GNU 通用公共许可证下修改它;也可以是该许...

apache使用fcgi配置PHP环境的步骤

早期的CGI技术使外部程序与Web服务器之间交互成为可能,但CGI程序运行在独立的进程中,并对每个Web请求创建一个进程,这种方法非常容易实现,但效率很差,难以扩展。面对大量请求,进程的大量创建和消亡...

如何在Centos7配置ssh/rsh免密互信集群服务

如何在Centos7配置ssh/rsh免密互信集群服务

ssh免密互信操作一、在SSH服务器所在机器上1、以root用户登录,更改ssh配置文件 /etc/ssh/sshd_config,去除以下配置的注释RSAAuthentication ye...

大神教你轻松驾驭Tomcat

大神教你轻松驾驭Tomcat

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。