git 误删文件? 谁惹的货 (文件大小写修改)

1.背景

    今天有兄弟说我 在git上 误删了 他的js文件 

    

     我当时即刻就感到难以置信,作为10年开发经验的一枚程序员,怎么可能做这种事情!!!!

     但是 兄弟拿出证据了 


git 误删文件? 谁惹的货 (文件大小写修改)
 

 2.排查

作为社会主义四有新人,不会做这样的事情的,通常我不会删别人的文件(如果code review 要删的话,肯定也会告知对方的), 何况这个文件还是 后台管理系统中不知道哪个功能的一个js

我就不信邪

我得查查 ,揪揪看, 到底是为什么 ,我就基于整个项目 来 show  history

嘿 还真发现, 在我的代码版本之前的几个小时 有删除记录 


git 误删文件? 谁惹的货 (文件大小写修改)
 

  

哦, 然后问了下兄弟,  原来是 他之前 重命名了 文件名 ,  从update-item-baseInfo.js 改成  update-item-baseinfo.js    也就是从 大写的 Info 改成了 小写的 info

3. 原因

好嘛, 我们的开发环境 目前都是 windows操作系统,  不区分大小写, 

在 git  pull代码的时候, 原来的文件会被删除, 但是新文件的名称 对于 windows而言 和 原来的名字是一样的, 那么就不会创建新文件

而我当天由于批量修改了 author值, 这条删除记录从茫茫的提交记录中忽视了 自然而然的就提交了

4.总结

这个事件也点明了:

  1. 如果是windows开发环境  重命名的时候, 不要简单的大小写修改
  2. 提交文件的时候,还是需要留个心眼儿, 冷不丁的可能会提交不是你想要提交的东西

 参考 :

http://stackoverflow.com/questions/17683458/how-do-i-commit-case-sensitive-only-filename-changes-in-git

http://stackoverflow.com/questions/8481488/is-git-not-case-sensitive

http://stackoverflow.com/questions/10523849/changing-capitalization-of-filenames-in-git

相关推荐