.gitignore语法

.gitignore语法在一些项目中 我们不想让本地仓库的所有文件都上传到远程仓库中 而是有选择的上传 比如 一些依赖文件 node modules 下的依赖 bin 目录下的文件 测试文件等 一方面将一些依赖 测试文件都上传到远程传输量很大 另一方面 一些文件对于你这边是可用的 在另一个人那可能就不可用了 比如 本地配置文件 为了解决上述问题 git 引入了 gitignore 文件 使用该文件来选择性的上传文件

一、为什么使用 .gitignore ?

为了解决上述问题,git 引入了 .gitignore 文件,使用该文件来选择性的上传文件。

二、使用规则

/mtk/ 过滤整个文件夹 *.zip 过滤所有.zip文件 /mtk/do.c 过滤某个具体文件

以上规则意思是:被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。

除了以上规则,它还可以指定要将哪些文件添加到版本管理中。

!src/ 不过滤该文件夹 !*.zip 不过滤所有.zip文件 !/mtk/do.c 不过滤该文件

1、配置语法:

  • 斜杠/开头表示目录;
  • 星号*通配多个字符;
  • 问号?通配单个字符
  • 方括号[]包含单个字符的匹配列表;
  • 叹号!表示不忽略(跟踪)匹配到的文件或目录;

此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

2、示例说明

a、规则:fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
b、规则:/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
c、规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;


















3、注意

  • “#” 表示注释
  • “!”  表示取消忽略
  • 空行不作匹配
  • 若匹配语句中无“/ ” ,便将其视为一个 glob匹配,如’abc’可以匹配 ‘ abc’ , ‘cd/abc’ , ‘ef/abcde.txt’
  • 若匹配语句中有’/ ‘ ,便视为一个路径匹配,如’abc/’可以匹配 ‘ abc’ , ‘cd/abc’ ,但是无法匹配 ‘ef/abcde.txt’
  • 若匹配语句以’/ ‘ 开始,便视为匹配当前目录,如’/abc’可以匹配 ‘ abc’ 但无法匹配 ‘cd/abc’ 
  •  表示匹配零到多级目录

4、示例

# dependencies npm包文件 /node_modules # production 打包文件 /build # misc .DS_Store npm-debug.log*

.DS_Store:这个文件是Mac OS X用来存储文件夹的一些诸如自定义图标,ICON位置尺寸,窗口位置,显示列表种类以及一些像窗体自定义背景样式,颜色这样的元信息。默认情况下,Mac OS X下的每个文件夹下应该都会生成一个,包括网络介质存储盘和U盘这样的外部设备。

npm-debug.log:项目主目录下总是会出现这个文件,而且不止一个,原因是npm i 的时候,如果报错,就会增加一个此文件来显示报错信息,npm install的时候则不会出现。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221617.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:41
下一篇 2026年3月17日 下午5:41


相关推荐

  • 利用Redis实现高并发计数器

    利用Redis实现高并发计数器业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信、一个接口一分钟限制多少请求、一个接口一天限制调用多少次等等。使用Redis的Incr自增命令可以轻松实现以上需求。以一个接口一天限制调用次数为例: /** *是否拒绝服务 *@return */ privatebooleandenialOfService(StringuserId){ longc…

    2022年5月24日
    253
  • 利用Python+阿里云实现DDNS(动态域名解析)

    利用Python+阿里云实现DDNS(动态域名解析)引子我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应的IP是可以动态变化的。那这个有什么用呢?比如,在家里的路由器上连着一个raspberrypi(树莓派),上面跑着几个网站,我应该如和在外网环境下访问网站、登陆树莓派的SSH呢?还有,家里…

    2022年6月8日
    40
  • 网页音乐播放器总结[通俗易懂]

    网页音乐播放器总结[通俗易懂]总结一下Vue实战的网页音乐播放器首先是设计出主体的整个框架分为四个部分最左边的歌曲列表,中间的唱片,最右边的热门评论显示以及下方的播放条然后开始准备进行功能的实现首先是需要导入Vue的依赖以及axios的js网络依赖库<!–开发环境版本,包含了有帮助的命令行警告–><scriptsrc=”https://cdn.jsdelivr.net/npm/vue/dist/vue.js”></script><!–官网提供的axio

    2022年6月17日
    40
  • 黑客入门 | 什么是踩点[通俗易懂]

    黑客入门 | 什么是踩点[通俗易懂]踩点就是收集目标信息的技巧,通过踩点找寻你感兴趣的信息。《孙子兵法》曰:“知已知彼,百战不殆;不知彼而知己,一胜一负;不知彼不知己,每战必殆。”通过对目标进行有计划,有步骤的踩点,收集整理出一份关于该目标的信息安防现状完整剖析图。收集方面:因特网、内联网、远程访问、外联网因特网主要收集:域名、网络地址和子网、可以直接从因特网访问的各个系统的具体IP地址、已经被发现的各个系统上运行的TCP和…

    2022年5月15日
    112
  • encoder和decoder的区别_decode作用

    encoder和decoder的区别_decode作用I’veneverbeensurethatIunderstandthedifferencebetweenstr/unicodedecodeandencode.Iknowthatstr().decode()isforwhenyouhaveastringofbytesthatyouknowhasacertaincharacterenco…

    2022年10月6日
    7
  • grok怎么取消自动续费

    grok怎么取消自动续费

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号