当前位置: 首页 > news >正文

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 文件!

相关文章:

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

诸神缄默不语-个人CSDN博文目录 在日常使用 Git 进行版本控制时,我们经常会遇到一些不需要被提交到远程仓库的文件(例如日志文件、临时配置文件、环境变量文件等)。为了忽略这些文件的提交,Git 提供了一个非常有用的功能&#xf…...

UniApp 组件的深度运用

一、引言 在当今的移动应用开发领域,跨平台开发已成为主流趋势,而 UniApp 作为其中的佼佼者,备受开发者青睐。UniApp 的强大之处很大程度上源于其丰富且功能多样的组件体系,这些组件宛如精巧的积木,能够帮助开发者快速…...

k8s部署nginx+sshd实现文件上传下载

要通过 nginx 和 sshd 实现文件的上传和下载,通常的做法是结合 SSH 协议和 HTTP 协议,使用 nginx 提供 Web 服务器功能,同时使用 sshd(即 SSH 服务)来处理通过 SSH 协议进行的文件传输。 SSH 实现文件的上传和下载&…...

Spring-Mybatis 2.0

前言: 第一点:过于依赖代码生成器或AI,导致基于mybaits的CRUD通通忘了,所以为了找回遗忘的记忆,有了该系列内容。 第二点:通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能…...

Linux 的历史与发展:从诞生到未来

Linux 的历史与发展:从诞生到未来 1. 起源之前:操作系统的历史背景 在 Linux 问世之前,操作系统的发展经历了多个重要阶段,这些阶段为 Linux 的诞生奠定了基础: 1940-1950 年代:计算机初期 早期计算机如 [[…...

SQL Server实现将分组的其他字段数据拼接成一条数据

在 SQL Server 中,可以使用 STRING_AGG 函数(SQL Server 2017 及更高版本支持)将分组的其他字段数据拼接成一条数据。以下是示例代码: 假设有一个表 Orders,结构如下: OrderIDCustomerIDProduct1C001Appl…...

学习笔记 --C#基础其他知识点(同步和异步)

C#中的同步和异步《一》 以下理解借鉴博客:借鉴博客地址1 异步编程(Asynchronous) 允许任务在后台执行,而不会阻塞调用线程。C#使用async和await关键字 async Task AsynchronousMethod() {// 等待异步操作完成await Task.Dela…...

一维、线性卡尔曼滤波的例程(MATLAB)

这段 MATLAB 代码实现了一维线性卡尔曼滤波器的基本功能,用于估计在存在噪声的情况下目标状态的真实值 文章目录 一维线性卡尔曼滤波代码运行代码介绍1. **初始化部分**2. **数据生成**3. **卡尔曼滤波器实现**4. **结果可视化**5. **统计输出**源代码总结一维线性卡尔曼滤波 …...

极品飞车6的游戏手柄设置

极品飞车,既可以用键盘来控制车辆的前进、后退、左转、右转、加速与减速,也可以使用游戏手柄来操作车辆的运行。需要注意的是,极品飞车虽然支持手柄,但是仅支持常见的北通、罗技还有部分Xbox系列的手柄,至于其他的PS4手…...

FreeRTOS Lwip Socket APi TCP Server 1对多

源文件 /********************************************************************************* file lwip_tcp_driver.cpp* brief TCP Server implementation using LwIP******************************************************************************* at…...

逆袭之路(11)——python网络爬虫:原理、应用、风险与应对策略

困厄铸剑心,逆袭展锋芒。 寒苦凝壮志,腾跃绘华章。 我要逆袭。 目录 一、引言 二、网络爬虫的基本原理 (一)网络请求与响应 (二)网页解析 (三)爬行策略 三、网络爬虫的应用领…...

KOI技术-事件驱动编程(Sping后端)

1 “你日渐平庸,甘于平庸,将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的,那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人,和他们斗了那么久,最终却要变得和他们一样,…...

LVS 负载均衡原理 | 配置示例

注:本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时,可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写,翻…...

Hive分区再分桶表

在Hive中,数据通常是根据分区(partition)来组织的,但是对于大数据集,单层分区可能不够用,因此可以进一步细分为桶(bucket)。桶可以用于提供额外的并行处理和优化查询性能。在这种情况…...

从 Coding (Jenkinsfile) 到 Docker:全流程自动化部署 Spring Boot 实战指南(简化篇)

前言 本文记录使用 Coding (以 Jenkinsfile 为核心) 和 Docker 部署 Springboot 项目的过程,分享设置细节和一些注意问题。 1. 配置服务器环境 在实施此过程前,确保服务器已配置好 Docker、MySQL 和 Redis,可参考下列链接进行操作&#xff1…...

Linux官文转载-- Linux 内核代码风格

Warning 此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 这是一个简短的文档,描述了 linux 内核的首选代码风格。代码风格是因人而异的&a…...

Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放

一、前言说明 近期对视频监控系统做了比较大的更新升级,主要就是三点,第一点就是增加了辅屏预览,这个也是好多个客户需要的功能,海康的iVMS-4200客户端就有这个功能,方便在多个屏幕打开不同的视频进行查看&#xff0c…...

【贪心算法】贪心算法七

贪心算法七 1.整数替换2.俄罗斯套娃信封问题3.可被三整除的最大和4.距离相等的条形码5.重构字符串 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃&#x1f…...

LangChain教程 - 表达式语言 (LCEL) -构建智能链

系列文章索引 LangChain教程 - 系列文章 LangChain提供了一种灵活且强大的表达式语言 (LangChain Expression Language, LCEL),用于创建复杂的逻辑链。通过将不同的可运行对象组合起来,LCEL可以实现顺序链、嵌套链、并行链、路由以及动态构建等高级功能…...

使用Locust对Redis进行负载测试

1.安装环境 安装redis brew install redis 开启redis服务 brew services start redis 停止redis服务 brew services stop redis 安装Python库 pip install locust redis 2.编写脚本 loadTest.py # codingutf-8 import json import random import time import redis …...

RoboMaster装甲板识别避坑指南:灯条匹配参数怎么调?反光、远距离识别失败怎么办?

RoboMaster装甲板识别实战调参手册:从灯条匹配到抗干扰优化 第一次在赛场边调试装甲板识别算法时,我盯着屏幕上疯狂跳动的识别框,突然理解了什么叫"实验室里的王者,赛场上的青铜"。当场地灯光直射装甲板、敌方机器人高速…...

如何安装Dr. Memory:Windows、Linux、Mac完整安装教程

如何安装Dr. Memory:Windows、Linux、Mac完整安装教程 【免费下载链接】drmemory Memory Debugger for Windows, Linux, Mac, and Android 项目地址: https://gitcode.com/gh_mirrors/dr/drmemory Dr. Memory是一款功能强大的内存调试工具,能够检…...

C++ 智能指针的生命周期管理机制

C智能指针的生命周期管理机制 在C编程中,内存管理一直是开发者面临的重大挑战之一。传统的手动内存管理方式容易导致内存泄漏、悬空指针等问题,而智能指针的出现为这一问题提供了优雅的解决方案。智能指针通过自动化的生命周期管理机制,显著…...

【需求改变与测试如何】

需求一旦修改,测试该如何进行呢? 最近面临的项目,经过很多次需求更改或者是前期没有需求,实际操作起来,让人很是头疼,恰到也看到大家也有着相同的讨论。 来源于微信公众号:测试论道学习&#x…...

数学建模实战书籍精选:从入门到竞赛的全方位指南

1. 为什么你需要一本好的数学建模书? 数学建模就像学做菜,光看菜谱不动手永远成不了大厨。我见过太多同学抱着《高等数学》死磕,结果遇到实际问题连最简单的线性规划都写不出来。一本好的实战书能帮你少走三年弯路——当年我第一次参加国赛&a…...

Win10/Win11远程桌面报错‘函数不受支持’?5分钟搞定CredSSP加密Oracle修正

Win10/Win11远程桌面报错‘函数不受支持’?5分钟急救指南 刚准备远程处理工作文件,突然跳出"发生身份验证错误,要求的函数不受支持"的红色警告框——这个场景对需要频繁使用远程桌面的职场人来说简直噩梦。上周我就遇到了同样问题&…...

最新扫码点餐外卖配送餐饮小程序系统源码

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新扫码点餐外卖配送餐饮小程序系统源码 系统功能: 1.支持多平台:微信小程序,支付宝小程序,和H5平台,页面可以后台DIY管理。 2.小程序页面支…...

Blender3mfFormat插件全攻略:从安装配置到3D打印工作流优化

Blender3mfFormat插件全攻略:从安装配置到3D打印工作流优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender3mfFormat插件是一款专为Blender设计的3MF…...

从需求到原型自动生成!传统产品经理升级AI产品架构师的智能化研发工作流

在人工智能技术深度渗透各行业的今天,产品研发领域正经历颠覆性变革——传统“需求调研→文档撰写→原型绘制→评审修改”的线性研发模式,已难以适配数字化时代“快速迭代、精准落地”的核心需求。与此同时,聚焦人工智能技能培养与评估的CAIE…...

终极热键冲突检测指南:3分钟定位Windows快捷键失效元凶

终极热键冲突检测指南:3分钟定位Windows快捷键失效元凶 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...