前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在 Git 中当更改一个文件名为首字母大写时

在 Git 中当更改一个文件名为首字母大写时

作者头像
山月
发布于 2021-01-04 06:51:59
发布于 2021-01-04 06:51:59
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

一般开发中在 Mac 上开发程序,并使用 Git 进行版本管理,在使用 React 编写 Component 时,组件名一般建议首字母大写。

「有些同学对 React 组件的文件进行命名时,刚开始是小写,后来为了保持团队一致,又改成了大写,然而 git 不会发现大小写的变化,此时就出了问题。」

再梳理一遍这个逻辑:

  1. 小明编写组件 button.js,提交代码
  2. 小明觉得组件命名不妥,改为 Button.js
  3. 小明并修改所有文件对它的引用,本地环境运行正常,提交代码
  4. 构建服务器通过 Git 拉取代码,进行构建,Git 为认识到 button.js 大小写发生变化,所有引用 Button.js 的组件发生报错,失败

来重现一下犯错的这个过程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 刚开始 test 文件是由内容的
~/Documents/ignorecase-test(master ✔) cat test
hello

# 把 test 文件改成首字母大写的 Test 文件
~/Documents/ignorecase-test(master ✔) mv test Test

# 注意此时 git status 并没有发生改变
~/Documents/ignorecase-test(master ✔)
~/Documents/ignorecase-test(master ✔) git ls-files
test
~/Documents/ignorecase-test(master ✔) ls
Test

解决方案

通过 git mv,在 Git 暂存区中再更改一遍文件大小写解决问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git mv test Test

但是修改文件夹时会出现一些问题:

❝fatal: renaming 'dir' failed: Invalid argument ❞

使用下边这个笨办法修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git mv dir DirTemp
$ git mv DirTemp Dir

预防方案

那有没有什么预防措施?

「Git 默认是忽略大小写的,如果改成不忽略大小写是不就可以了?不行,这样会产生更麻烦的问题。」

更改为不忽略大小写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[core]
  ignorecase = false

以下是产生的问题:

  1. 「修改文件名时,Git 工作区中一下子增加了两个文件,并且无法删除」
  2. 「git rm 删除文件时,工作区的两个文件都被删除」
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
~/Documents/ignorecase-test(master ✔) ls
test
~/Documents/ignorecase-test(master ✔) mv test Test
~/Documents/ignorecase-test(master ✗) ls
Test
~/Documents/ignorecase-test(master ✗) git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Test

nothing added to commit but untracked files present (use "git add" to track)
~/Documents/ignorecase-test(master ✗) git add -A
~/Documents/ignorecase-test(master ✗) git ls-files
Test
test
~/Documents/ignorecase-test(master ✗) git rm test
rm 'test'
~/Documents/ignorecase-test(master ✗) git add -A
~/Documents/ignorecase-test(master ✗) git ls-files
~/Documents/ignorecase-test(master ✗)

总结

使用 git mv -fmv 同时更改文件名,避免本地文件系统与仓库中代码不一致。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git大小写不敏感问题避免,Jenkins代码构建失败踩坑记录
前几天同事遇到一个问题,代码修改完本地可以运行,提交到 gitlab ,Jenkins 构建失败,报错找不到文件(图片)。
德顺
2022/01/27
1.4K0
git初入门(二):文件操作
如果我们提交过后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过 "git add" 添加到暂存区,然后执行以下命令:
传说之下的花儿
2023/09/16
4160
git初入门(二):文件操作
文件大小写引发的问题
由于更改的代码太多具体改的什么我也忘记了,只能看看 Jenkins 构建留下的日志:
前端黑板报
2021/11/02
8020
同事偷偷改了git目录让我跑不起项目
由于被绿太狠了,心情不太好就开始了骚操作坑队友!common => COMMON结果如下:
秋风的笔记
2021/07/09
1.1K0
git常见疑难杂症解决
与人,请注意说话的语气,关心的话就温柔着来,开玩笑的话就嬉闹着来,正事就严肃着来。在亲人、情侣之间最常见的误会:明明是关心,出口便特别冲,满是愤怒的语气。
小闫同学啊
2020/10/23
7010
Git 总结
git submodule 允许一个git仓库,作为另一个git仓库的子目录,并且保持父仓库和子仓库相互独立。
yiyun
2022/04/01
1.1K0
Git 总结
git,程序配置文件管理,忽略本地更改
所以我们应该这样子做:git仓库提供一份配置文件的基础模板,每个人都拉取到本地修改但是要忽略本地更改监听。
宣言言言
2019/12/15
1.1K0
Git学习笔记.
Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比 Git 与 SVN 区别 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。 如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。 Git 与 SVN 区别点: 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.
JMCui
2018/03/15
1.1K0
Git学习笔记.
[第37期] 了解下git文件名大小写
下午在搞代码部署的时候, 遇到一个文件名大小写的问题, 问题比较简单, 但是也简单整理下, 分享给大家。
皮小蛋
2020/02/29
8130
Git的奇技淫巧?
Git是一个“分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过“回撤”这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用“回撤”是找不回来的。而“版本管理工具”能记录每次的修改,只要提交到版本仓库,你就可以找到之前任何时刻的状态(文本状态)。 下面的内容就是列举了常用的git命令和一些小技巧,可以通过"页面内查找"的方式进行快速查询:Ctrl/Command+f。 开卷必读 如果之前未使用过Git,可以学习廖老师的免费Git教程入门 一定要先测试命令的效果后,再用于工作
逸鹏
2018/04/10
7360
Git 的奇技淫巧
Git是一个 “分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过 “回撤” 这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。而 “版本管理工具” 能记录每次的修改,只要提交到版本仓库,你就可以找到之前任何时刻的状态(文本状态)。
iMike
2019/07/29
1.2K0
git 入门教程之删除文件 原
回忆一下文件的常见操作,新增文件,修改文件,删除文件等,新增和修改文件都单独讨论过,现在我们来研究一下如何删除文件.
雪之梦技术驿站
2019/04/03
7130
hexo 分类或标签单词开头大写出现404
最近搬运笔记到博客,编辑的文章多了,今天突然发现,有一个分类点进去404,本地运行正常没有问题。查了一圈发现是git的大小写区分问题。
潇洒
2023/10/20
2010
git 入门教程之撤销更改 原
相信你已经了解了 git 的基本概念,也清楚了工作区,暂存区和版本库的关系,现在让我们用所学的知识继解决实际问题吧!
雪之梦技术驿站
2019/04/03
6450
[Git] 代码管理之 Git(一)Git 入门
当我们开发一个产品的时候。所有的代码并不是一气呵成全部一次性完成的,肯定是经过多个步骤,大项目甚至会多人好几个月甚至几年共同开发而成的,而这个过程中,我们的代码要形成很多个版本,好比(图片摘自网上)
轻舞飞扬SR
2021/02/24
4410
[Git] 代码管理之 Git(一)Git 入门
GitHub三天超4K星:玩转Git的72个神奇技巧
大家在用Git写东西的时候都用过 “回撤” 这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。
新智元
2019/05/08
9590
GitHub三天超4K星:玩转Git的72个神奇技巧
分布式版本控制系统——Git
分布式相比于集中式的最大区别在于开发者可以将代码提交到本地,每个开发者通过克隆,在本地机器上拷贝一个完整的git仓库。
小手冰凉
2020/03/13
6520
Git忽略已经提交过一次文件Git忽略文件
1、从未提交过的文件可以用.gitignore 也就是添加之后从来没有提交(commit)过的文件,可以使用.gitignore忽略该文件
超级小可爱
2023/02/23
6520
走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧
本文介绍了七十多种常用的 Git 命令与技巧,项目作者削微寒在开源工作上也做了非常多的贡献。目前 Git 奇技淫巧项目已经获得了 6.8K 的 Star,他还构建了另一个 1.1W+ 的开源项目集锦 HellowGitHub。
机器之心
2019/05/07
9270
走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧
一个小时学会Git
张果
2018/01/04
3.4K0
一个小时学会Git
相关推荐
Git大小写不敏感问题避免,Jenkins代码构建失败踩坑记录
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验