Git的.gitignore文件详解与常见用法

诸神缄默不语-个人CSDN博文目录

在日常使用 Git 进行版本控制时,我们经常会遇到一些不需要被提交到远程仓库的文件(例如日志文件、临时配置文件、环境变量文件等)。为了忽略这些文件的提交,Git 提供了一个非常有用的功能:.gitignore 文件

本文将详细介绍 .gitignore 的作用、用法,以及如何处理已经被跟踪的文件。

文章目录

  • 一、什么是 `.gitignore`
    • 常见场景
  • 二、创建 `.gitignore` 文件
    • 创建方法
  • 三、`.gitignore` 的语法规则
    • 1. 忽略文件
    • 2. 忽略文件夹
    • 3. 通配符使用
    • 4. 忽略某路径下的文件
  • 四、忽略已被跟踪的文件
    • 问题描述
    • 解决方案
  • 五、`.gitignore` 模板
  • 六、总结

一、什么是 .gitignore

.gitignore 是一个文本文件,用于告诉 Git 在版本控制中忽略指定的文件或文件夹。这些被忽略的文件不会被提交到远程仓库,也不会显示在 git status 的输出中。

常见场景

  • 忽略操作系统生成的临时文件(如 .DS_StoreThumbs.db)。
  • 忽略 IDE 或编辑器生成的配置文件(如 .vscode*.suo)。
  • 忽略包含敏感信息的文件(如 .envcredentials.json)。
  • 忽略自动生成的构建文件(如 node_modulesdist)。

二、创建 .gitignore 文件

创建方法

在项目根目录下创建 .gitignore 文件:

touch .gitignore

在文件中添加需要忽略的文件或文件夹。例如:

# 忽略操作系统文件
.DS_Store
Thumbs.db# 忽略日志文件
*.log# 忽略环境变量文件
.env# 忽略依赖文件夹
node_modules/
dist/

三、.gitignore 的语法规则

1. 忽略文件

.gitignore 文件中,直接写上文件名即可忽略该文件:

.env

2. 忽略文件夹

在文件夹名称后加上 /

node_modules/
dist/

3. 通配符使用

  • *:匹配任意字符。
  • ?:匹配单个字符。
  • [abc]:匹配括号内的任意字符。

示例:

# 忽略所有 `.log` 文件
*.log# 忽略以 `temp` 开头的文件
temp*# 忽略 `.txt` 文件,但保留 `important.txt`
*.txt
!important.txt

4. 忽略某路径下的文件

指定路径下的文件:

# 忽略 src 目录下的所有 `.tmp` 文件
src/**/*.tmp

四、忽略已被跟踪的文件

问题描述

如果某个文件已经被 Git 跟踪(即已被提交到仓库),即使后来将其添加到 .gitignore 文件中,Git 仍会继续跟踪它。

解决方案

  1. 更新 .gitignore 文件
    将需要忽略的文件加入 .gitignore

    .env
    
  2. 停止对文件的跟踪
    使用 git rm --cached 命令停止对该文件的跟踪:

    git rm --cached .env
    
    • --cached 参数只从 Git 的索引中移除文件,不会删除本地文件。
  3. 提交更改
    提交更新后的 .gitignore 和移除文件的操作:

    git commit -m "Remove .env from version control and update .gitignore"
    
  4. 验证忽略效果
    修改被忽略的文件(如 .env),运行 git status 检查,应该不会显示文件的更改。

五、.gitignore 模板

不同的项目可能需要不同的 .gitignore 配置。可以参考 GitHub 官方的 .gitignore 模板库,选择适合你的项目的模板。

例如,Node.js 项目的 .gitignore

node_modules/
npm-debug.log
.env
dist/

Python 项目的 .gitignore

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]# Environment variables
.env

六、总结

  • .gitignore 是管理 Git 项目时的重要工具,能帮助我们避免提交不必要的文件。
  • 对于已经跟踪的文件,需要使用 git rm --cached 停止其跟踪,并配合 .gitignore 文件实现忽略。
  • 养成在项目初期就配置 .gitignore 的习惯,可以避免不必要的麻烦。

希望通过这篇文章,你能够更好地理解和使用 .gitignore 文件!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据挖掘——聚类

数据挖掘——聚类 聚类K-meansKNN VS K-meansK-Nearest Neighbors (KNN)K-means K中心算法PAM算法 K-modes算法——解决数据敏感的问题KMeans算法 ——解决初始点选择问题K-中心点层次方法AGNES算法——最小距离单链接全链接平均链接 聚类评估K均值和K中心点的优缺点层次化聚类…

Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)

文章目录 概述步骤 1: 安装 Nginx 和 Lua 模块步骤 2: 创建 Lua 脚本用于参数校验步骤 3: 配置 Nginx 使用 Lua 脚本写法二: 状态码写法三 : 返回自定义JSON复杂的正则校验 步骤 4: 测试和验证ngx.HTTP_* 枚举值 概述 一个不使用 OpenResty 的 Nginx 集…

虚拟机中的时统卡功能和性能调优

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…

GXUOJ-算法-补题:22级《算法设计与分析》第一次课堂练习

2.最大子数组和 问题描述 代码解答 #include<bits/stdc.h> using namespace std; const int N1005; int sum,n,a[N]; int res-1;int result(){for(int i0;i<n;i){if(sum<0) suma[i];else{suma[i];resmax(res,sum);}}return res; } int main(){cin>>n;for(i…

信息学奥赛一本通:1311:【例2.5】求逆序对

1311&#xff1a;【例2.5】求逆序对 时间限制: 1000 ms 内存限制: 65536 KB提交数:74572 通过数: 17809 【题目描述】 给定一个序列a1,a2,…,an&#xff0c;如果存在i<j并且ai>aj&#xff0c;那么我们称之为逆序对&#xff0c;求逆序对的数目。 【输入】 第一…

免登录游客卡密发放系统PHP网站源码

源码介绍&#xff1a; 这是一个简单易用的卡密验证系统&#xff0c;主要功能包括&#xff1a; 卡密管理和验证&#xff0c;多模板支持&#xff0c;响应式设计&#xff0c;验证码保护&#xff0c;防刷机制&#xff0c;简洁的用户界面&#xff0c; 支持自定义模板&#xff0c;移…

关于 PPPOE技术的详细解释

PPPoE&#xff08;以太网点对点协议&#xff09;是一种网络协议&#xff0c;它通过光纤将点对点协议&#xff08;PPP&#xff09;封装以实现宽带接入点。PPPoE主要用于ADSL和光纤等宽带接入技术中&#xff0c;它允许多个用户共享同一个交换机连接&#xff0c;同时为每个用户提供…

C# 服务应用研究

文章目录 创建Windows Service项目选中serviceInstaller1组件&#xff0c;查看属性生成和发布服务安装服务卸载服务重新再安装服务停止服务再次卸载服务调试服务 创建Windows Service项目 选中serviceInstaller1组件&#xff0c;查看属性 生成和发布服务 安装服务 卸载服务 重新…

MySQL中distinct和group by去重的区别

MySQL中distinct和group by去重的区别 在MySQL中&#xff0c;我们经常需要对查询结果进行去重&#xff0c;而DISTINCT和GROUP BY是实现这一功能的两种常见方法。虽然它们在很多情况下可以互换使用&#xff0c;但它们之间还是存在一些差异的。接下来&#xff0c;我们将通过创建测…

三维场景重建3D高斯点渲染复现

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;传知代码 欢迎大家点赞收藏评论&#x1f60a; 目录 三维场景重建概述MVSNetNerf3D gaussian-splatting 效果演示3D gaussian-splatting原理高斯分布的数学基础渲染过程优化与加速 3D Gaussian-sp…

小波滤波器处理一维信号-附Matlab源代码

⭕⭕ 目 录 ⭕⭕ 一、引言二、多分辨率分析原理2.1 概念解析2.2 尺度函数和小波函数的关系2.3 滤波器本质2.4 二维正交多分辨率分析 三、一维信号小波滤波器处理实例四、Matlab程序获取与验证 一、引言 Fourier变换无法同时描述和定位信号在时间和频率上的突变部分。小波变换的…

log4j2的Strategy、log4j2的DefaultRolloverStrategy、删除过期文件

文章目录 一、DefaultRolloverStrategy1.1、DefaultRolloverStrategy节点1.1.1、filePattern属性1.1.2、DefaultRolloverStrategy删除原理 1.2、Delete节点1.2.1、maxDepth属性 二、知识扩展2.1、DefaultRolloverStrategy与Delete会冲突吗&#xff1f;2.1.1、场景一&#xff1a…

vue v-for 数据增加页面不刷新

<div style"float:left;border:1px solid red;height:100px;width:600px;"><el-form-item label"多语言配置" style"width:700px;" prop"validTanleHead"><el-input style"width: 180px" placeholder"请…

Mac 版本向日葵退出登录账号

找遍整个软件&#xff0c;Mac 版本的向日葵甚至逆天到没有提供退出登录的功能… 随后我发现可以直接删除向日葵的配置文件达到退出登录的效果&#xff0c;具体操作如下&#xff1a; cd /etc # 确认存在 orayconfig.conf 文件 ls orayconfig.conf  # 删除 sudo rm -f oray…

双目视觉:reprojectImageTo3D函数

前言 reprojectImageTo3D 是 OpenCV 中用于从视差图生成三维点云的函数。它的原理是利用视差图和相机的校准参数&#xff0c;通过三角测量法&#xff0c;计算每个像素对应的三维坐标。以下内容根据源码分析所写&#xff0c;觉得可以的话&#xff0c;点赞收藏哈&#xff01;&am…

苍穹外卖04——Redis初入门 在店铺打烊or营业状态管理功能中的使用

Redis入门 redis简介 它以键值对的形式存储数据在内存中,并且以极高的性能和灵活性而著称,通常用于缓存、消息代理以及持久化数据。 - 基于内存存储,读写性能高- 适合存储热点数据(热点商品、资讯、新闻)- 企业应用广泛Windows版下载地址:https://github.com/microsoft…

No.1十六届蓝桥杯备战|第一个C++程序|cin和cout|命名空间

第一个C程序 基础程序 使用DevC5.4.0 写一个C程序 在屏幕上打印hello world #include <iostream> using namespace std;int main() {cout << "hello world" << endl;return 0; } 运行这个C程序 F9->编译 F10->运行 F11->编译运行 mai…

springboot实战(19)(条件分页查询、PageHelper、MYBATIS动态SQL、mapper映射配置文件、自定义类封装分页查询数据集)

引言&#xff1a; 该类博客的学习是基于b站黑马视频springbootvue视频学习&#xff01;具体围绕项目——"大事件"进行实战学习。 目录 一、功能介绍&#xff08;需求&#xff09;。 1、文章列表功能基本介绍。 2、条件分页查询功能与注意。 3、前端页面效果。&#x…

LoRA微调系列笔记

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录LoRA&#xff1a;Low-Rank Adaptation of Large Language Models目的&#xff1a;依据&#xff1a;优势&#xff1a;…

Python - 游戏:飞机大战;数字华容道

Pygame是一个利用SDL库的写的游戏库&#xff0c;SDL呢&#xff0c;全名Simple DirectMedia Layer&#xff0c;是一位叫做Sam Lantinga的大牛写的 SDL是用C写的&#xff0c;不过它也可以使用C进行开发&#xff0c;当然还有很多其它的语言&#xff0c;Pygame就是Python中使用它的…