文章

如何确保Git跟踪文件名大小写变化

Git默认情况下不跟踪文件名从小写变为大写的修改变化,这会导致命名规范差异以及项目管理隐患

如何确保Git跟踪文件名大小写变化

一、问题背景

  • 假设代码仓库中原本存在小写的app.h文件,我们处于某些管理习惯原因需要将其改为App.h以保持命名的同一,在默认设置下Git并不会追踪该修改
  • 通过以下指令查看core.ignorecase选项,其值默认为true,此时Git不会追踪文件名首字母从小写换为大写的变化,这不仅让强迫症十分难受,还十分容易引起合并冲突问题
1
git config --get core.ignorecase

二、解决方案

  • 若通过指令将其设置为false理论上就能跟踪,但存在一些隐患(参考该博客),我处于安全性考虑暂未验证其所述隐患是否可在我本地复现,以后有机会再回来补全该部分笔记
1
2
3
4
//局部
git config core.ignorecase false
//全局
git config --global core.ignorecase false
  • 在需要将文件名首字母从小写改为大时,以下方法能保证一定不出错
    • 不要直接修改,先将原始app.h改为其它名称如xxx.h,然后git add .添加到暂存区
    • 然后再改为目标的大写名称App.h,此时再使用git add .就能使得修改被跟踪

Git跟踪大小写.png

本文由作者按照 CC BY-NC-SA 4.0 进行授权