当你将一个之前在Linux环境下开发的项目clone到windows环境下,用atom打开时,有时会发现,刚clone下来的项目,居然每个文件都被标示为黄色的modified状态,点进一个文件,发现该文件的modified状态消失了。而当你好不容易把每个文件都点过一遍,以为这样就好了的时候,随便折叠展开下文件夹,发现又有文件变成了modified状态,如此往复,总而言之git状态显示的是乱七八糟。。。
其实,这一切的罪魁祸首就是windows 和linux的换行符不同。
大家都知道linux下的换行符是\n
而windows下的则是\r\n
,如果你在windows下编辑的文件,在linux下打开一般是没有问题的,因为后面都带\n
,然而当linux下的文件clone到windows时,由于windows的换行符前面多一个\r
,只有一个\n
是不会被认为是换行的.这样在windows看来,这个文件整个文本都是在一行中的,自然就会认为文件被修改了。
好在,git提供了自动转换的方法:
git config --global core.autocrlf true
在windows下执行这个,可以让git在处理文件时自动做CRLF转换,atom的git状态问题也就解决了。