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

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

文章目录

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


前言

Git是一个免费的、开源的分布式版本控制系统,可以高速处理从小型到大型的各种项目
版本控制:是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统
git

– 集中式版本控制工具:如CVS、SVN等,都有一个单一的几种管理服务器,保存所有文件的修订版本,而协同工作的人通过客户端连接到这台服务器,从而取出最新的文件或者提交更新。缺点:中央服务器的单点故障;多(程序员)对一(中央服务器)
– 分布式版本控制工具:如git,客户端取的不是最新的文件快照,而是把代码仓库完整的镜像下来到本地库(克隆/备份)


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

默认情况下,在windows系统中,git不区分文件名大小写(linux系统会区分),所以如果开发环境是windows系统的话,当我们修改文件名大小写时,git无法识别出文件的变化,导致仓库和本地环境的文件名不一致。

查看本地状态:git status

方法1.使用git命令进行修改

git mv -f [你想要删掉的文件] [你想要留下的文件] 
git mv -f a.c A.c

等同于: 
git rm a.c 
git add A.c

将文件从一个目录移动到另一个目录
git mv test-dir TEST-DIR

如果是重命名文件夹,由于 Windows 下对文件夹的大小写也不敏感(-_-),所以直接使用上面的方法会失败:
# Rename from 'test-dir' to 'Test-dir/test-dir' failed.

解决方法,需要找个中间名
git mv test-dir tmp
git mv tmp TEST-DIR

方法2.关闭git 忽略大小写配置 (可以当前项目设置,也可以全局设置 --global)

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

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

# 全局配置
git --global config core.ignoreCase false

注意:如果你修改文件目录的名字后,再执行方式二,会出现新的问题。
我们建议用方式一修改目录后,再执行方式二。或者,我们执行方式二后,再随便修改目录。

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

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

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

现象二:clone和pull下来的文件却只有 uds目录。

原因分析

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

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

解决方法

到 github 远程仓库里面手动删掉


http://www.kler.cn/a/290536.html

相关文章:

  • 常见error集合
  • ODOO学习笔记(3):Odoo和Django的区别是什么?
  • Docker网络和overlay的基础讲解
  • WorkFlow源码剖析——Communicator之TCPServer(下)
  • c/c++--struct对比
  • 电脑提示xinput1_3.dll丢失怎么办?游戏DLL修复方法详解
  • Unity数据持久化 之 二进制存储法
  • 设计模式之适配器模式:软件世界的桥梁建筑师
  • 【系统架构设计师-2019年】综合知识-答案及详解
  • ts 类型分类
  • 在安卓和Windows下使用Vizario H264 RTSP
  • 数据库系统 第28节 数据库迁移 案例分析
  • 2011年
  • pr瘦脸怎么操作?
  • css设置让整个盒子的内容渐变透明(非颜色渐变透明)
  • Fine3399或rk3399\sw799刷armbian创建热点
  • 精益工程师资格证书:2024年CLMP报名指南
  • sql-labs51-55通关攻略
  • 【Pandas】Pandas日常工作的常用操作大全
  • Go 语言版本管理——Goenv
  • 探索淘宝拍立淘API:解锁以图搜图的购物新体验
  • 浅谈C#事件
  • 在 Facebook 上投放广告需要多少钱?
  • Docker续6:容器网络
  • CentOS 部署 RocketMQ 详细指南
  • Multi-Mode DOA Estimation AND Relax Super Resolution DOA