Git学习-.gitignore文件介绍
创始人
2025-05-31 11:10:00
0

文章目录

    • 1. .gitignore规范
    • 2. .gitignore例子
    • 3. IDEA中的.ignore插件
    • 4. 为啥有时候gitignore不生效
    • 总结

本篇主要详细介绍了 .gitignore 文件的内容,以及如何合理的进行配置;

我们平时在开发过程中,经常会包含一些不希望被别人看到,或者不需要被别人看到的文件,比如IDEA项目的配置目录.idea、node模块的包目录node_modules等;

这时我们就可以通过 .gitignore 文件来将这些路径排除掉,这样提交时就不会把这些目录提交到远程仓库;下面我们就详细介绍下 .gitignore 文件。

1. .gitignore规范

这里我们列举出比较重要的几种规范,如下所示:

  • #:# 开头的为注释内容

  • 正则表达式:可以使用正则表达式来进行模式匹配,默认会递归循环整个目录

    * : 匹配单个或多个字符
    ** : 匹配多级目录
    ? : 匹配单个字符
    [abc] : 匹配a、b、c中的任意一个字符
    [a-c] : 匹配a~c之间的任意一个字符

  • /开头:只在当前目录匹配,不进行递归,比如/src表示只匹配当前目录的src文件或目录,不去其他目录匹配

  • /结尾:只匹配目录,不匹配文件, 比如 target/表示只匹配target目录,不匹配target文件

  • !开头: 取反,不匹配指定的文件或目录,比如!main.xml表示 不排除所有的main.xml文件

2. .gitignore例子

ideatarget/*.iml!main.iml/test*.classdemo/*.txtdemo/**/*.txt*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar

.idea: 排除所有的idea文件或目录(这里的所有包括当前目录和其他目录,也就是说会递归查找目录,
下面的所有都是同理
)

target/: 排除掉所有的target目录

*.iml: 排除所有的.iml文件

!main.iml:不要排除main.iml文件,配合上面的*.iml一起使用就是 排除所有.iml文件,但是不排除main.iml文件

/test:只排除当前目录下的test目录,不排除其他目录下的test目录,比如src/test就不会被排除

*.class:排除所有类文件

demo/*.txt:排除所有demo目录下的txt文件,只在demo目录下查找,比如demo/update.txt

demo/**/*.txt:排除所有demo目录下的txt文件,在demo目录及其子目录下查找,比如demo/a/update.txt, demo/update.txt

*.jar:排除所有打包文件

3. IDEA中的.ignore插件

一般来说,每一种项目都会有一些特定的ignore模板,比如Java会产生class文件,node会产生node_modules模块;

如果每种项目都有一个gitignore模板那该多好啊;
正好,IDEA就有这样一个插件:.ignore插件;
不过它不止适用于gitignore,还适用于其他的ignore

不过我们这里只介绍.gitignore;
安装插件
直接在插件市场搜索 ignore,安装即可
在这里插入图片描述

使用插件
这里假设我们创建了一个Java项目,那么就可以在项目的路径下创建一个.gitignore文件;
在这里插入图片描述

接着选择对应的Java模板;
这样一个基于Java的.gitignore模板就算创建成功了,接下来可以自己再看着修改:
在这里插入图片描述

4. 为啥有时候gitignore不生效

有时候我们明明添加了匹配模式,但是就是排除不了对应的文件或目录;

那是因为那个文件或目录已经被添加到了git的记录中(执行过git add),此时再在gitignore中添加匹配模式是无法生效的;

解决办法就是从git记录中删除对应的文件或目录;

git rm -rf --cached .

-rf:表示递归+强制

–cached: 表示只删除git记录,不删除本地文件;如果不添加这个选项,则本地文件也会被删除
. : 表示删除当前目录的所有git记录,如果只是想删除指定的文件,可以用具体的文件名替代,比如git rm -rf --cached demo.txt

如果误删除了所有git记录,可以用git restore --staged .恢复

总结

首先我们需要知道,.gitignore的匹配模式就是用了简化版的正则表达式;

其次我们如果是用IDE开发,一般都会有ignore插件,帮助我们快速添加一个gitignore模板(不同项目有不同的模板);

最后如果ignore不生效,可以通过删除对应的git记录来解决,git rm -rf --cached .;

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...