(Git) gitignore基础使用

文章目录

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

前言

Git - gitignore Documentation (git-scm.com)

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

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

.gitignore 模式匹配

注释 #

shell 复制代码
# 使用`#`进行注释

转义 \

shell 复制代码
# `\` 表示转义符号

直接匹配

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

shell 复制代码
main.cpp
build

任意字符匹配 *

*表示0或多个字符。

注意:不可以匹配/

shell 复制代码
# 匹配所有后缀为`.log`的文件
*.log

单个字符匹配 ?

?表示1个字符匹配。

注意:不可以匹配/

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

目录分割 /

开头

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

shell 复制代码
# 只对当前路径下的 test.cpp 起作用
/test.cpp

中间

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

shell 复制代码
build/main.exe

末尾

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

shell 复制代码
build/

多级目录 **

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

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

shell 复制代码
# 匹配多级目录
build/**/Debug

范围匹配 []

有点类似正则表达式。

shell 复制代码
# 0.txt ~ 9.txt
[0-9].txt
# xay.txt xby.txt xcy.txt
x[abc]y.txt

取消匹配 !

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

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

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

shell 复制代码
!*.gitkeep

检查是否生效

shell 复制代码
# 若没被忽略则会显示
git check-ignore <文件或目录>

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

help信息:

shell 复制代码
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

相关推荐
赖small强几秒前
【Linux C/C++开发】 GCC -g 调试参数深度解析与最佳实践
linux·c语言·c++·gdb·-g
white-persist11 分钟前
VSCode 快捷键大全:从设计理念到场景化高效运用(详细解析)(文章末尾有vim快捷键大全)
linux·ide·vscode·python·编辑器·系统安全·vim
Violet_YSWY14 分钟前
git变基删除中间版本,使用drop出现文件丢失问题,原因及解决方案
git
_w_z_j_1 小时前
Linux----信号(产生、保存、处理)
linux·运维·服务器
集大周杰伦1 小时前
RV1126开发板烧录与SSH登录实践
linux·ssh·嵌入式·rv1126·瑞芯微开发工具·ssh 远程登录
Xの哲學1 小时前
Linux RTC深度剖析:从硬件原理到驱动实践
linux·服务器·算法·架构·边缘计算
了一梨2 小时前
使用Docker配置适配泰山派的交叉编译环境
linux·docker
dragonchow1232 小时前
git sparse-checkout, 只拉取部分目录
git
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [fs]binfmt_script
linux·笔记·学习
GoWjw3 小时前
内存管理【3】
linux·服务器·c++·ubuntu