.gitignore语法及配置问题

news2024/9/23 5:33:39

语法及配置

  • 前言
  • .gitignore语法
  • Git 忽略规则优先级
  • gitignore规则不生效
  • Java项目中常用的.gitignore文件
  • c++项目中常用的.gitignore
  • 注意事项

前言

在工程中,并不是所有文件都需要保存到版本库中,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。
在这里插入图片描述

.gitignore语法

标识说明举例
#或空格空行或以#开头的行将被git忽略,可以用作注释### IntelliJ IDEA ###
*代表零个或多个任意字符*.txt会匹配所有后缀为txt的文件
代表一个任意字符?.txt 会匹配a.txt 但不会匹配ab.txt
[]可以匹配括号内的任一字符[abc].txt 会匹配a.txt,b.txt和c.txt
**两个星号 ** 表示任意中间目录**/foo会匹配 foo,a/foo,a/b/foo等
前缀!表示不忽略*.txt和!important.txt会忽略所有的.txt文件,但不会忽略important.txt
前缀/表示只忽略当前目录下的文件/test 会忽略当前目录下的test文件,但不会忽略a/test
后缀/表示只忽略目录test/ 会忽略test目录,但不会忽略test文件

温馨提示
/在文件夹名前,/test表示根目录下的某个文件,/test/表示忽略根目录下的/test/目录的全部内容,而test/表示忽略文件夹test下的全部内容,不管是根目录下的/test/,还是某个子目录下的test文件夹,比如:/child/test,都会被忽略

Git 忽略规则优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
1、从命令行中读取可用的忽略规则
2、当前目录定义的规则
3、父级目录定义的规则,依次递推
4、$GIT_DIR/info/exclude 文件中定义的规则
5、core.excludesfile中定义的全局规则

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

gitignore规则不生效

1、.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交。
相关git命令:

	git rm -r --cached .
	git add .
	git commit -m 'update .gitignore'

2、想添加一个文件到git,发现添加不了,原因是这个文件被.gitignore忽略了

$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.

如果你确实想添加该文件,可以用-f强制添加到Git,或者是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查

$ git check-ignore -v App.class
.gitignore:3:*.class    App.class

git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

Java项目中常用的.gitignore文件

# Prerequisites
*.d
 
# Compiled Object files
*.slo
*.lo
*.o
*.obj
 
# Precompiled Headers
*.gch
*.pch
 
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
 
# Fortran module files
*.mod
*.smod
 
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
 
# Executables
*.exe
*.out
*.app
 
build/
.vscode/

c++项目中常用的.gitignore

# Prerequisites
*.d
 
# Compiled Object files
*.slo
*.lo
*.o
*.obj
 
# Precompiled Headers
*.gch
*.pch
 
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
 
# Fortran module files
*.mod
*.smod
 
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
 
# Executables
*.exe
*.out
*.app
 
build/
.vscode/

注意事项

  • 命令和注释别在同一行,如*.txt #注释txt这样会导致这一行无法被识别;
  • git add .之前如果有改动.gitignore一定要 执行 git rm -r --cached;
  • 合理使用.gitignore可以避免无用文件的上传,也可以防止重要配置信息的泄露.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1616586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四信AI睿析—边缘智脑:赋能农业新时代,开启智慧种植新篇章

方案简介 本系统前端安装土壤墒情监测站,包括温湿度传感器、二氧化碳传感器、PH值传感器、土壤电导率传感器、土壤温湿度传感器、光照传感器等组成;高清枪机摄像头等、负责种植区域温湿度、土壤EC、土壤温湿度、光照等环境因子、视频数据、农作物生长图…

Spring 依赖-ApiHug准备-测试篇-015

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace gradle…

Golang | Leetcode Golang题解之第44题通配符匹配

题目: 题解: func isMatch(s string, p string) bool {for len(s) > 0 && len(p) > 0 && p[len(p)-1] ! * {if charMatch(s[len(s)-1], p[len(p)-1]) {s s[:len(s)-1]p p[:len(p)-1]} else {return false}}if len(p) 0 {retur…

【Linux学习】初始认识操作系统

文章目录 🚀简单认识操作系统(Operator System)🌂操作系统的定义🌂为什么需要操作系统呢?🌂系统调用和库函数概念 🚀简单认识操作系统(Operator System) 🌂操作系统的定义 操作系统(Operation…

20240331-2-文本表征方式

静态语义表示方法 知识体系 主要包括词袋模型 BoW、TFIDF、LDA、Word2vec、Golve、Doc2Vec 等。 Questions 在小数据集中 Skip-Gram 和 CBoW 哪种表现更好? Skip-Gram 是用一个 Center Word 预测其 Context 里的 Word;而 CBoW 是用 Context 里的所有…

Python 数据库简化操作:dataset 库介绍

文章目录 Python 数据库简化操作:dataset 库介绍第一部分:背景介绍第二部分:库是什么?第三部分:如何安装这个库?第四部分:库函数使用方法第五部分:场景应用第六部分:常见…

小清新思维题

CF521D shop Problem Solution 首先如果确定了执行的操作,执行顺序一定为赋值、加、乘。赋值操作只保留最大的,并可以转化为加法。每个数的加法操作按从大到小顺序排序后可以转化为乘法。最后将所有乘法操作从大到小排序选前𝑚个即可。 先…

数据库服务类--Redis--未授权访问终端Getshell

免责声明:本文仅做技术交流与学习. 目录 前提条件: windows上开启redis服务: Linux上创建&开启redis服务: 操作: 1-连接靶机redis 2-写入webshell 3-访问后门 redis--->webshell Redis未授权访问漏洞复现与利用 - 知乎 (zhihu.com) 前提条件: 端口开放(6379) 目录…

数据库左连接、右连接、内连接、全连接

在数据库增删改查中,数据通常不在同一张表中,涉及多表数据查询就需要表之间的连接方式,常用的数据库表连接方式有; 1)内连接:inner join 2)全连接:union 3)右连接&#x…

centos7安装了没有图形界面的解决办法

如果你的centos7是这样的 只需要重新选择虚拟机 按照这个配置调即可

面试宝典(1)——数据库篇(MySQL)

面试宝典(1)——数据库篇(MySQL) 1.什么是索引? 索引是一种用于加快数据库查询速度的数据结构。 索引可以帮助数据库快速定位到数据库表中特定列的记录,从而加快数据检索和查询的速度。 通过在表的列上…

protoc初识

protoc初识 参考资料 https://blog.csdn.net/qq_46637011/article/details/135085568 https://blog.csdn.net/qq_39400324/article/details/134172333 一 前期准备 windows查看proto是否安装好及版本号 protoc --version windows查看路径下文件 dir 想在124.50机器上安…

Linux进程概念(四):进程优先级 环境变量

目录 进程优先级 学前补充 命令行参数 环境变量 环境变量$PATH 整体理解环境变量 environ指针 获取环境变量的三种方式 内建指令 证明内建指令的存在 进程优先级 基本概念:指定进程获取某种资源的先后顺序 linux的优先级是进程控制块task_struct中的…

华为交换机重置密码

1.进入bootrom 加电后,18S左右,在启动菜单按 CtrlB 进入bootrom(3s内) 注意:本步骤属于高危操作,一定小心切勿删除系统或修改bootrom密码! 输入bootrom密码,按6 看到提示成功后按…

Django模型的继承

Django模型的继承 Django模型的继承,包括模型的抽象基类、Meta继承、related_name和related_query_name属性、多表继承、Meta和多表继承、继承与反向关系、代理模型、代理模型继承和未托管模型,以及多重继承等内容。本文讲解一下抽象基类继承&#xff0…

详解Qt中实现树状结构图

在Qt中,实现树状结构图通常采用QTreeWidget或QTreeView组件。这两个组件都允许我们创建具有层次结构的列表,但它们之间存在一些差异。QTreeWidget提供了更简单的API,适用于轻量级、快速开发的需求;而QTreeView则更为灵活和可定制&…

.NET WebAPI服务端启用跨源请求 (CORS)

跨源请求 (CORS)问题 在API服务端启用跨源请求 (CORS) 调用 UseCors 扩展方法并指定 PolicyCorsName CORS 策略。 UseCors 添加 CORS 中间件。 对 UseCors 的调用必须放在 UseRouting 之后,但在 UseAuthorization 之前。 Program.cs添加如下代码(注意中间…

货拉拉0-1数据指标体系构建与应用

目录 一、背景 二、指标体系搭建 2.1 指标设计 2.2 指标体系搭建 2.3 指标维度拆解 三、指标标准化建设 四、指标元数据管理 五、指标应用&未来规划 原文大佬介绍的这篇指标体系构建有借鉴意义,现摘抄下来用作沉淀学习。如有侵权请告知~ 一、背景 指标…

二叉搜索树及相关操作(图文详解)

1.概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分…

【面试经典 150 | 数组】整数转罗马数字

文章目录 写在前面Tag题目来源解题思路方法一:模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾…