当前位置: 首页 > 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如何寻找图片轮廓
  • 【RocksDB】TransactionDB源码分析
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CSS3 变换
  • ES10 特性的完整指南
  • JAVA_NIO系列——Channel和Buffer详解
  • Java应用性能调优
  • LeetCode算法系列_0891_子序列宽度之和
  • Map集合、散列表、红黑树介绍
  • SQL 难点解决:记录的引用
  • 关于字符编码你应该知道的事情
  • 官方解决所有 npm 全局安装权限问题
  • 码农张的Bug人生 - 初来乍到
  • 前端攻城师
  • 前端面试题总结
  • 使用 Docker 部署 Spring Boot项目
  • 说说动画卡顿的解决方案
  • 探索 JS 中的模块化
  • 听说你叫Java(二)–Servlet请求
  • 我是如何设计 Upload 上传组件的
  • 物联网链路协议
  • 学习笔记TF060:图像语音结合,看图说话
  • 追踪解析 FutureTask 源码
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #define,static,const,三种常量的区别
  • $(selector).each()和$.each()的区别
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .Net Winform开发笔记(一)
  • .NET 回调、接口回调、 委托
  • .net 托管代码与非托管代码
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET开发人员必知的八个网站
  • .Net下的签名与混淆
  • .Net语言中的StringBuilder:入门到精通
  • @angular/cli项目构建--Dynamic.Form
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解