虽然文件内容并没有改变,但git status显示目录下所有文件都被标识有更改

用git diff filename命令查看不同,结果若下图:


这里提示的不同,是文件的权限改变了。

SO,解决方案奏是:不让git检测文件权限的区别

git config core.filemode false


又遇到一个问题,,,git merge后发现竟然修改了所有(一千多个)文件。。然而文件的不同只是酱紫的,


问题倒简单,windows和unix换行符不同的问题,关键是解决方案,dos2unix命令(需要自己安装),批量执行:

find . -type f -exec dos2unix {} \;

其中具体命令的解释如下:

find .
= find files in the current directory(当前文件夹下查找)

-type f
= of type f(查找类型是文件)

-exec dos2unix {} \;
= and execute dos2unix on each file found(执行dos2unix命令)



参考原文:http://stackoverflow.com/questions/1257592/how-do-i-remove-files-saying-old-mode-100755-new-mode-100644-from-unstaged-cha

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐