(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

相关推荐
韩楚风40 分钟前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学43 分钟前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO1 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu71 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我1 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、1 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程1 小时前
Linux中环境变量
linux
挥剑决浮云 -2 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
小O_好好学3 小时前
CentOS 7文件系统
linux·运维·centos
x晕x3 小时前
Linux dlsym符号查找疑惑分析
linux·运维·服务器