Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
T treasure
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 14
    • Issues 14
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • FE
  • treasure
  • Issues
  • #30

Closed
Open
Created Mar 19, 2021 by 陶家行@taojiahang

Git 不敏感文件夹大小写

背景

在重构项目时发现了一个文件夹大小写没有规范,就在开发的时候随手改掉了,当时发现 git 中并没有记录这个改动,当时也没有注意这个细节。后面发现,编辑器一直会报错,每次切换分支后都会出现分支无法切换的问题(切换时,未修改大小写之前的文件会出现在 git 修改中)。

经过在网上的搜索后发现,原来是 mac(Linux)对文件夹的大小写默认是不敏感的,如果直接修改文件夹名,git 无法发现文件改动,但是文件确实生成了,所以git 就会在记录中复制一个相同的文件(文件名不同)。

当你使用 git push 提交代码后,你会在远端上发现两个相同的不同名文件。

解决方法

需要使用git mv [file] [newfile]命令手动地修改文件名再改回来,

例如:

现在我有一个叫myfiles的文件夹,我希望把它改成 myFiles,这时候正确的做法是

git mv myfiles tmp
git mv tmp myFiles

原理是通过修改文件名称,再改回正确的名字,来提示 git 文件大小写的修改。

学到什么

不可避免的踩坑,要注意 *unix 系统对文件名大小写是不敏感的。

尽量避免老文件名的修改,在创建文件时就要规范文件名。

Edited Mar 19, 2021 by 陶家行
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking