当前位置: 首页 > news >正文

(Git) gitignore基础使用

文章目录

  • 前言
  • .gitignore 模式匹配
    • 注释 `#`
    • 转义 `\`
    • 直接匹配
    • 任意字符匹配 `*`
    • 单个字符匹配 `?`
    • 目录分割 `/`
    • 多级目录 `**`
    • 范围匹配 `[]`
    • 取消匹配 `!`
  • 检查是否生效
  • 父子文件
  • END

前言

Git - gitignore Documentation (git-scm.com)

在使用git管理的项目中,可以通过.gitignore文件管理一些需要忽略管理的文件。

注意就是全名为:.gitignore的文件。

.gitignore 模式匹配

注释 #

# 使用`#`进行注释

转义 \

# `\` 表示转义符号

直接匹配

忽略所有匹配的文件文件夹

main.cpp
build

任意字符匹配 *

*表示0或多个字符。

注意:不可以匹配/

# 匹配所有后缀为`.log`的文件
*.log

单个字符匹配 ?

?表示1个字符匹配。

注意:不可以匹配/

# 匹配所有后缀为`.log`且名字只有一个字符的文件
?.log

目录分割 /

开头

表示从当前的.gitignore文件路径进行匹配。

# 只对当前路径下的 test.cpp 起作用
/test.cpp

中间

最常见的含义,表示中间路径。

build/main.exe

末尾

只忽略文件夹,不忽略文件。

build/

多级目录 **

**用于多级目录的匹配。

弥补了*和?无法匹配/的问题。

# 匹配多级目录
build/**/Debug

范围匹配 []

有点类似正则表达式。

# 0.txt ~ 9.txt
[0-9].txt
# xay.txt xby.txt xcy.txt
x[abc]y.txt

取消匹配 !

! 用于取消已经匹配了的内容。

notes:一般建一个空白的.gitkeep来保证项目文件夹的存在。

特别注意:当该文件的父文件目录被排除时,这整个规则会无效。

!*.gitkeep

检查是否生效

# 若没被忽略则会显示
git check-ignore <文件或目录># -v 查看是被哪条规则忽略的
git check-ignore -v <文件或目录>

help信息:

usage: git check-ignore [<options>] <pathname>...or: git check-ignore [<options>] --stdin-q, --quiet           suppress progress reporting-v, --verbose         be verbose--stdin               read file names from stdin-z                    terminate input and output records by a NUL character-n, --non-matching    show non-matching input paths--no-index            ignore index when checking

父子文件

当在子文件夹有.gitignore文件时。当前子文件夹会遵守当前的.gitignore并忽略父文件夹下的规则。

END

ref:

【忽略文件版本控制gitignore详解,git-ignore精讲教程,2022年最新git基础使用,git进阶教程,git必备技能】

关注我,学习更多C/C++,算法,计算机知识

B站:

👨‍💻主页:天赐细莲 bilibili

相关文章:

  • Linux TUN设备实现Tunnel性能分析
  • 题目:学习使用external的用法。
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • 【STL】list的底层原理及其实现
  • 船气废弃锅炉三维仿真vr交互展示降低培训门槛
  • 流式密集视频字幕
  • MySQL学习笔记1
  • java八股——常见设计模式
  • CSS面试题常用知识总结day03
  • 贪心算法|53.最大子序和
  • WinForm用微软打包工具打包
  • 外包干了25天,技术倒退明显
  • vue element动态添加删除数据div
  • Vue - 你知道Vue中key的工作原理吗
  • opencv如何寻找图片轮廓
  • “大数据应用场景”之隔壁老王(连载四)
  • 345-反转字符串中的元音字母
  • IndexedDB
  • vue中实现单选
  • windows下如何用phpstorm同步测试服务器
  • 机器学习中为什么要做归一化normalization
  • 简单数学运算程序(不定期更新)
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 你对linux中grep命令知道多少?
  • zabbix3.2监控linux磁盘IO
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​2020 年大前端技术趋势解读
  • ​ArcGIS Pro 如何批量删除字段
  • #define,static,const,三种常量的区别
  • #pragma multi_compile #pragma shader_feature
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (day6) 319. 灯泡开关
  • (rabbitmq的高级特性)消息可靠性
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)linux下的时间函数使用
  • (转)为C# Windows服务添加安装程序
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • . Flume面试题
  • .apk文件,IIS不支持下载解决
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET的数据绑定
  • /boot 内存空间不够
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @EnableAsync和@Async开始异步任务支持
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Android] Implementation vs API dependency