1.背景
今天有兄弟说我 在git上 误删了 他的js文件
我当时即刻就感到难以置信,作为10年开发经验的一枚程序员,怎么可能做这种事情!!!!
但是 兄弟拿出证据了
2.排查
作为社会主义四有新人,不会做这样的事情的,通常我不会删别人的文件(如果code review 要删的话,肯定也会告知对方的), 何况这个文件还是 后台管理系统中不知道哪个功能的一个js
我就不信邪
我得查查 ,揪揪看, 到底是为什么 ,我就基于整个项目 来 show history
嘿 还真发现, 在我的代码版本之前的几个小时 有删除记录
哦, 然后问了下兄弟, 原来是 他之前 重命名了 文件名 , 从update-item-baseInfo.js 改成 update-item-baseinfo.js 也就是从 大写的 Info 改成了 小写的 info
3. 原因
好嘛, 我们的开发环境 目前都是 windows操作系统, 不区分大小写,
在 git pull代码的时候, 原来的文件会被删除, 但是新文件的名称 对于 windows而言 和 原来的名字是一样的, 那么就不会创建新文件
而我当天由于批量修改了 author值, 这条删除记录从茫茫的提交记录中忽视了 自然而然的就提交了
4.总结
这个事件也点明了:
- 如果是windows开发环境 重命名的时候, 不要简单的大小写修改
- 提交文件的时候,还是需要留个心眼儿, 冷不丁的可能会提交不是你想要提交的东西
参考 :
http://stackoverflow.com/questions/8481488/is-git-not-case-sensitive
http://stackoverflow.com/questions/10523849/changing-capitalization-of-filenames-in-git
相关推荐
6. 自定义规则:用户可自定义比较规则,比如忽略空格、大小写等。 7. 脚本支持:通过脚本自动化执行对比任务。 在实际使用中,Beyond Compare可以根据需求调整视图,如侧边栏显示差异、合并视图等,以适应不同场景...
- **自定义规则**:允许设置比较规则,如忽略空格、大小写敏感性等,以适应不同需求。 2. **使用场景**: - **版本控制系统**:在Git、SVN等版本控制系统中,用于查看代码的修改历史和解决合并冲突。 - **开发...
- **split**:分割大文件成较小的部分。`split [选项] 输入 输出前缀`,用于数据管理和备份。 - **tee**:读取标准输入并写入标准输出和文件。`tee [选项] 文件`,常用于日志记录和管道操作。 - **tmpwatch**:删除...
8. **自定义规则**:用户可以根据需要设置比较规则,比如忽略空格、大小写等,使得比较结果更符合个人需求。 **使用场景** 1. **软件开发**:在编程过程中,开发者可以利用Beyond Compare检查代码的修改,确认没有...
IT工具如Git或云服务(Google Docs、Microsoft OneDrive)可以帮助跟踪文件的更改历史,避免冲突,并方便团队协作。 5. **电子签名**: 在法律文件中,电子签名正在逐渐替代传统的手写签名。在Word文档中,可以通过...
- **丢失的文件:** 如果误删了文件,可以通过`hg recover`尝试找回。 **5.3 拷贝文件** - **合并后拷贝文件的内容:** 在合并过程中,拷贝文件的内容会被正确处理。 - **命令`hg copy`的行为:** 使用`hg copy`...
- **提示不区分大小写**:配置大小写敏感性。 - **剪贴板数量设置**:增加剪贴板的历史记录数。 - **生成JAVADOC**:自动生成文档。 - **设置Spring支持**:配置Spring框架支持。 - **启动时不自动打开项目**:避免...
- **签出**:在编辑文件前,先签出,获得文件的写权限。 - **编辑与签入**:完成编辑后,签入文件,将更改保存到VSS库。 - **查看历史**:可以查看文件的历史版本,了解每一次修改的详情。 - **解决冲突**:如果...
1. `chmod`:更改文件或目录的权限,如`chmod 755 file`设置所有者可读写执行,其他人可读执行。 2. `chown`:改变文件或目录的所有者,`chgrp`改变所属组。 五、搜索与查找 1. `find`:根据路径、名称、大小、时间...
例如,使用全文搜索技术可以快速定位文件,Git等版本控制系统可以追踪文件的修改历史,而回收站则允许用户撤销误删操作。 总的来说,一个基于JavaScript的文件共享应用涉及到前端的文件操作、网络通信、安全策略,...
- **数据恢复**:如果误删了文件或代码,可以通过 Git 恢复丢失的数据。 ##### 9. GitLab 服务器 - **安装与配置**:安装 GitLab 并配置相关参数。 - **使用**:创建项目仓库,邀请团队成员加入,管理权限等。 - *...
1. **备份**:在进行任何大规模的代码修改之前,一定要先备份原始代码,以防万一出错。 2. **谨慎操作**:确保工具能够正确识别和区分不同类型的注释,例如单行注释、多行注释和Javadoc注释。误删重要的Javadoc注释...
3. **版本控制**:为了便于追踪笔记的修改历史,系统可能内置了版本控制功能,如Git,允许用户回溯到之前的版本,防止误删或误改。 4. **富文本编辑**:用户可以创建包含文字、图片、链接等多种格式的笔记,这需要...