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

Git 对文件名大小写不敏感的问题解决方案

目录

  • 一、Git 对文件名大小写不敏感
    • 1.1 问题描述
    • 1.2 原因分析
    • 1.3 解决方案
      • 方式一:使用git命令进行修改
      • 方式二:关闭git 忽略大小写配置 (可以当前项目设置,也可以全局设置 `--global`)
  • 二、新的问题(重复的目录)
    • 2.1 问题描述
    • 2.2 原因分析
    • 2.3 解决方案
  • 三、总结
  • 参考资料

一、Git 对文件名大小写不敏感

1.1 问题描述

在Windows系统里,当 仅修改文件名大小写 时,git未检测到文件变更

1.2 原因分析

这个行为是由文件系统的不同规则引起的。

  • 在类Unix文件系统(例如Linux和macOS)上,文件名是区分大小写的,
  • 而在Windows文件系统上,默认情况下是不区分大小写的。

git 默认对大小写敏感,但是会在仓库克隆或初始化时,根据当前系统来设置是否忽略大小写,比如 Windows 下会设置为 true,即不敏感,而 Linux 中不会忽略;

引用官方原文的话:

The default is false, except git-clone or git-init will probe and set core.ignoreCase true if appropriate when the repository is created.

1.3 解决方案

注意:如果你修改文件目录的名字后,再执行方式二,会出现新的问题。

我们建议用方式一修改目录后,再执行方式二。或者,我们执行方式二后,再随便修改目录。

方式一:使用git命令进行修改

使用 git mv 命令修改文件名

git mv -f [你想要删掉的文件] [你想要留下的文件] 
git mv -f a.js A.js 等同于: 
git rm a.js 
git add A.js
将文件从一个目录移动到另一个目录
git mv test-dir TEST-DIR

如果是重命名文件夹,由于 Windows 下对文件夹的大小写也不敏感(-_-),所以直接使用上面的方法会失败:

git mv test-dir TEST-DIR# Rename from 'test-dir' to 'Test-dir/test-dir' failed.

这里就只有迂回一下,先把文件夹命名成其他名称,然后再命名为大写就行了:

git mv test-dir tmp
git mv tmp TEST-DIR

方式二:关闭git 忽略大小写配置 (可以当前项目设置,也可以全局设置 --global

执行 git config core.ignorecase 查看当前配置,不出意外,返回true

执行 git config core.ignorecase false 修改配置,关闭 git 忽略大小写配置

二、新的问题(重复的目录)

2.1 问题描述

假设我们将原来的 Java 目录修改 java 目录,则仓库会出现以下两种现象:

  • 现象一:当关闭git 忽略大小写配置后,我们将 修改 push到远程仓库。这时会出现一个新的问题:Java 目录和 java 目录会同时存在 github 远程仓库里面

  • 现象二:clonepull下来的文件却只有 java 目录。

2.2 原因分析

现象一原因:github 远程仓库对大小写敏感,可以区分 Java 目录 和 java

现象二原因:在仓库克隆或初始化时,根据当前系统来设置是否忽略大小写。因此, Java 目录 和 java 目录会冲突,Java 目录里面的内容被覆盖。

2.3 解决方案

解决方案查看:解决 Git 默认不区分文件名大小写和同名文件共存的问题 - 简书 (jianshu.com),

  • 到 github 远程仓库里面手动删掉
  • 在 linux系统里,git clong 仓库,将重复的目录给删掉,然后 push。

三、总结

在 Windows 系统里面运行 git 时,我们尽量开启 git config core.ignorecase false 这一配置。

参考资料

Git 仓库中文件名大小写问题 (knightyun.github.io)

Git文件名大小写不敏感问题及解决方案 - 掘金 (juejin.cn)

相关文章:

Git 对文件名大小写不敏感的问题解决方案

目录 一、Git 对文件名大小写不敏感1.1 问题描述1.2 原因分析1.3 解决方案方式一:使用git命令进行修改方式二:关闭git 忽略大小写配置 (可以当前项目设置,也可以全局设置 --global) 二、新的问题(重复的目录…...

Java复习系列之阶段三:框架原理

1. Spring 1.1 核心功能 1. IOC容器 IOC,全称为控制反转(Inversion of Control),是一种软件设计原则,用于减少计算机代码之间的耦合度。控制反转的核心思想是将传统程序中对象的创建和绑定由程序代码直接控制转移到…...

【Python】01快速上手爬虫案例一:搞定豆瓣读书

文章目录 前言一、VSCodePython环境搭建二、爬虫案例一1、爬取第一页数据2、爬取所有页数据3、格式化html数据4、导出excel文件 前言 实战是最好的老师,直接案例操作,快速上手。 案例一,爬取数据,最终效果图: 一、VS…...

JavaEE 网络编程

JavaEE 网络编程 文章目录 JavaEE 网络编程引子1. 网络编程-相关概念1.1 基本概念1.2 发送端和接收端1.3 请求和响应1.4 客户端和服务端 2. Socket 套接字2.1 数据包套接字通信模型2.2 流套接字通信模型2.3 Socket编程注意事项 3. UDP数据报套接字编程3.1 DatagramSocket3.2 Da…...

5.rk3588用cv读取图片(C++)

rk3588自带了cv&#xff0c;不需要重新安装&#xff0c;执行以下操作即可&#xff1a; 一、读取图片 1.读取某张图片 #define HAVE_OPENCV_VIDEO #define HAVE_OPENCV_VIDEOIO#include <opencv2/opencv.hpp> #include <iostream> #include <opencv2/opencv.h…...

Github 无法正常访问?一招解决

查询IP网址: https://ip.chinaz.com/ 主页如下&#xff1a; 分别查询以下三个网址的IP&#xff1a; github.com github.global.ssl.fastly.net assets-cdn.github.com 修改 hosts 文件&#xff1a; 将 /etc/hosts 复制到 home 下 sudo cp /etc/hosts ./ gedit hosts 在底下…...

架构师的36项修炼-08系统的安全架构设计

本课时讲解系统的安全架构。 本节课主要讲 Web 的攻击与防护、信息的加解密与反垃圾。其中 Web 攻击方式包括 XSS 跨站点脚本攻击、SQL 注入攻击和 CSRF 跨站点请求伪造攻击&#xff1b;防护手段主要有消毒过滤、SQL 参数绑定、验证码和防火墙&#xff1b;加密手段&#xff0c…...

docker 构建应用

docker 应用程序开发手册 开发 docker 镜像 Dockerfile 非常容易定义镜像内容由一系列指令和参数构成的脚本文件每一条指令构建一层一个 Dockerfile 文件包含了构建镜像的一套完整指令指令不区分大小写&#xff0c;但是一般建议都是大写从头到尾按顺序执行指令必须以 FROM 指…...

Go语言grpc服务开发——Protocol Buffer

文章目录 一、Protocol Buffer简介二、Protocol Buffer编译器安装三、proto3语言指南四、序列化与反序列化五、引入grpc-gateway1、插件安装2、定义proto文件3、生成go文件4、实现Service服务5、gRPC服务启动方法6、gateway服务启动方法7、main函数启动8、验证 相关参考链接&am…...

【开源】基于JAVA语言的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…...

金智易表通构建学生缴费数据查询+帆软构建缴费大数据报表并整合到微服务

使用金智易表通挂接外部数据,快速建设查询类服务,本次构建学生欠费数据查询,共有3块设计,规划如下: 1、欠费明细查询:学校领导和财务处等部门可查询全校欠费学生明细数据;各二级学院教职工可查询本二级学院欠费学生明细数据。 2、大数据统计报表:从应收总额、欠费总额…...

MySQL复合索引

复合索引是指在数据库表上同时包含两个或更多列的索引。它们对于优化涉及这些列的查询非常有效&#xff0c;特别是当这些列常常在查询条件&#xff08;如WHERE子句&#xff09;、排序&#xff08;ORDER BY子句&#xff09;和连接&#xff08;JOIN条件&#xff09;中使用时。 复…...

Web3 游戏开发者的数据分析指南

作者&#xff1a;lesleyfootprint.network 在竞争激烈的 Web3 游戏行业中&#xff0c;成功不仅仅取决于游戏的发布&#xff0c;还需要在游戏运营过程中有高度的敏锐性&#xff0c;以应对下一次牛市的来临。 人们对 2024 年的游戏行业充满信心。A16Z GAMES 和 GAMES FUND ONE …...

temu跨境电商怎么样?做temu蓝海项目有哪些优势?

在全球电商市场激烈的竞争中&#xff0c;Temu跨境电商平台以其独特的优势和策略&#xff0c;逐渐崭露头角。对于许多想要拓展海外市场的商家来说&#xff0c;Temu的蓝海项目提供了一个充满机遇的新平台。本文将深入探讨Temu跨境电商的优势以及在蓝海市场中的发展前景。 全球化市…...

C#使用RabbitMQ-1_Docker部署并在c#中实现简单模式消息代理

介绍 RabbitMQ是一个开源的消息队列系统&#xff0c;实现了高级消息队列协议&#xff08;AMQP&#xff09;。 &#x1f340;RabbitMQ起源于金融系统&#xff0c;现在广泛应用于各种分布式系统中。它的主要功能是在应用程序之间提供异步消息传递&#xff0c;实现系统间的解耦和…...

EasyExcel中自定义拦截器的运用

在EasyExcel中自定义拦截器不仅可以帮助我们不止步于数据的填充&#xff0c;而且可以对样式、单元格合并等带来便捷的功能。下面直接开始 我们定义一个MergeWriteHandler的类继承AbstractMergeStrategy实现CellWriteHandler public class MergeLastWriteHandler extends Abst…...

shell编程-7

shell学习第7天 sed的学习1.sed是什么2.sed有两个空间pattern hold3.sed的语法4. sed里单引号和双引号的区别:5.sed的查找方式6.sed的命令sed的标签用法sed的a命令:追加sed的i命令:根据行号插入sed的c命令:整行替换sed的r命令sed的s命令:替换sed的d命令:删除sed中的&符号 7…...

工业智能网关储能物联网应用实现能源的高效利用及远程管理

储能电力物联网是指利用物联网技术和储能技术相结合&#xff0c;实现对电力系统中各种储能设备的智能管理和优化控制。随着可再生能源的不断发展和应用&#xff0c;电力系统面临着越来越大的电力调度和储能需求而储能电力物联网的出现可以有效解决这一问题&#xff0c;提高电力…...

虹科数字化与AR部门升级为安宝特AR子公司

致关心虹科AR的朋友们&#xff1a; 感谢您一直以来对虹科数字化与AR的支持和信任&#xff0c;为了更好地满足市场需求和公司发展的需要&#xff0c;虹科数字化与AR部门现已升级为虹科旗下独立子公司&#xff0c;并正式更名为“安宝特AR”。 ”虹科数字化与AR“自成立以来&…...

服务器是什么?(四种服务器类型)

服务器 服务器定义广义: 专门给其他机器提供服务的计算机。狭义:一台高性能的计算机&#xff0c;通过网络提供外部计算机一些业务服务 个人PC内存大概8G&#xff0c;服务器内存128G起步 服务器是什么 服务器指的是 网络中能对其他机器提供某些服务的计算机系统 &#xff0c;相对…...

Hermes Agent 连接 Taotoken 自定义供应商的配置要点与排错

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Hermes Agent 连接 Taotoken 自定义供应商的配置要点与排错 基础教程类&#xff0c;指导 Hermes Agent 用户按照文档要求&#xff…...

Proxmark3GUI图形化工具:5分钟学会RFID卡片分析与数据管理

Proxmark3GUI图形化工具&#xff1a;5分钟学会RFID卡片分析与数据管理 【免费下载链接】Proxmark3GUI A cross-platform GUI for Proxmark3 client | 为PM3设计的跨平台图形界面 项目地址: https://gitcode.com/gh_mirrors/pr/Proxmark3GUI Proxmark3GUI是一款为Proxmar…...

告别内置ADC的烦恼:用ADS1119搞定STM32/DSP的高精度电压采样(附完整代码)

告别内置ADC的烦恼&#xff1a;用ADS1119搞定STM32/DSP的高精度电压采样&#xff08;附完整代码&#xff09; 在嵌入式系统开发中&#xff0c;电压采样是基础却至关重要的环节。许多工程师在使用STM32或DSP内置ADC时&#xff0c;常会遇到精度不足、抗干扰能力差、无法测量差分信…...

Flutter GetX实战:从Provider迁移到GetX,我的开发效率提升了多少?

Flutter GetX实战&#xff1a;从Provider迁移到GetX的效率革命 当Flutter开发团队面临状态管理方案的选择时&#xff0c;往往会陷入一种甜蜜的烦恼——官方推荐的Provider虽然稳定可靠&#xff0c;但第三方库GetX却以"全家桶"式的解决方案不断吸引开发者的目光。作为…...

Translumo:5分钟掌握Windows实时屏幕翻译终极指南

Translumo&#xff1a;5分钟掌握Windows实时屏幕翻译终极指南 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否在玩外…...

LVGL在无显存TFT屏上的驱动适配:双缓冲与DMA优化实践

1. 项目概述&#xff1a;当TFT屏幕遇上LVGL最近在做一个嵌入式GUI项目&#xff0c;核心任务是把LVGL这个轻量级图形库&#xff0c;适配到一块分辨率不算高但接口比较“个性”的TFT屏幕上。这活儿听起来像是把标准插头插到非标插座上&#xff0c;得自己动手改改线序。LVGL这几年…...

Switch便携投影底座DIY:3D打印与硬件改造实战指南

1. 项目概述&#xff1a;当Switch遇上投影&#xff0c;一场桌面上的大屏革命作为一个折腾过不少游戏机外设的玩家&#xff0c;我一直在想&#xff0c;有没有办法让Switch的“便携”属性再进化一步&#xff1f;官方底座接电视固然爽&#xff0c;但总被一根线缆束缚在客厅。直到我…...

基于CircuitPython与加速度计的魔法9号球:嵌入式交互项目实践

1. 项目概述&#xff1a;当硬件遇上玄学&#xff0c;用代码打造你的专属“决策神器”在嵌入式开发的世界里&#xff0c;我们常常与传感器、显示屏和逻辑代码打交道&#xff0c;构建着一个个解决实际问题的智能设备。但谁说硬件项目就一定要严肃刻板&#xff1f;今天&#xff0c…...

Godot引擎实验项目解析:从角色控制到着色器优化的实战指南

1. 项目概述与核心价值如果你是一名游戏开发者&#xff0c;尤其是对独立游戏开发充满热情&#xff0c;那么“Godot”这个名字对你来说一定不陌生。它是一个功能强大、开源免费的游戏引擎&#xff0c;以其轻量、高效和友好的编辑器而闻名。然而&#xff0c;引擎本身只是一个工具…...

Noto Emoji:专业解决跨平台表情符号渲染难题的终极方案

Noto Emoji&#xff1a;专业解决跨平台表情符号渲染难题的终极方案 【免费下载链接】noto-emoji Noto Emoji fonts 项目地址: https://gitcode.com/gh_mirrors/no/noto-emoji 在现代数字通信中&#xff0c;表情符号已成为不可或缺的语言元素&#xff0c;然而跨平台表情符…...