对比差异,代码中含有空格,百度后是Windows的换行符改成了Unix的换行符所致
方法:用其他文本编辑器把文件全部转回Windows的换行符
用notepad++ 打开文件后,右下角,双击点这个,切换到linux,再切换windows ,保存文件就ok了
工作中,同时使用Git for windows和SourceTree,SourceTree主要用来看日志,分支和文件改动这些,还是挺方便的。
其中,SourceTree有个挺好用的功能就是一个文件的改动,会按照改动区域进行分块组织列出,这样我们可以对某个块进行提交和丢弃(不知道用Git命令是否也能实现这种功能?),这是一个很不错的功能,实践中也比较常用。
但是,今天遇到一个问题,把文件的某个块改动丢弃之后,发现整个文件都显示被改动了,仔细一看,文件内容其实还是之前的内容,一下反应过来,应该是换行符之类的空白字符改动所致。
用BeyondCompare一对比,果然,文件整个被从Windows的换行符改成了Unix的换行符,所以显示文件被全部改动,但是代码又没发生变化。
用其他文本编辑器把文件全部转回Windows的换行符,果然,一切恢复正常。
这应该是Source Tree的一个bug,因为找遍了Source Tree的设置项,也没看到和换行符相关的一些设置,这里记录下,看来后续使用Source Tree的丢弃功能的时候要小心些。
转载----链接:https://www.jianshu.com/p/b150ef161c6c