git文件变更之谜
背景
今天从其他小伙伴那里拿到一个压缩包,里面有大量的文件大概700+,这个压缩包里面的文件之前已经上传过git了。
我这一次就是要找出压缩包中和旧版本压缩包中文件不同的部分。
操作
直接全选ctrl+a ctrl+c ctrl+v拷贝所有文件到项目对应路径下。
打开vscode一看傻眼,发现变更700+,几乎所有文件都被识别为需要更新。
随便打开一个文件的对比,发现肉眼不可见,基本可以确定要么是文件权限出现了变动,要么是回车导致的。
文件变化
通过git diff .\keycloak\themes\README.txt命令
拿到结果是warning: in the working copy of 'keycloak/themes/README.txt', LF will be replaced by CRLF the next time Git touches it
确实是因为unix系统和windows系统里回车不同导致的。
可以确定小伙伴是linux用户无疑了,而我这边是windows。
转换lf=》crlf
正常来说使用notepad++类似的文本编辑软件正则替换即可,但是我们现在要面对700+的文件,最直接的方式还是使用命令行工具。
linux下用过dos2unix,unix2dos类似的工具,搜索了一下windows下也有可用的实现。
unix2dos官网下载。get-childitem -path . -filter '*.*' -recurse | foreach-object {dos2unix $_.Fullname}
官网给出了powershell可以直接使用的命令。
一顿运行之后,发现有2个js脚本没有替换成功,手工revert掉解决问题,收工。