python 关于git下unix和windows换行符不同导致稍微改动一行代码git diff就是全部文件对比的解决方案
来源:互联网 发布:古龙的作品风格知乎 编辑:程序博客网 时间:2024/06/04 18:58
背景:
家里的电脑是用来打游戏的,配置也还可以,windows的,偶尔也会用来写写代码。
公司是mac。pycharm的默认配置:Pycharm》Settings》Editor》Code Style》Line separator是Classis Mac,也就是\r,真是尴尬。
导致每一次提交代码,就算是一行代码,git diff也是整个文件的增删。
思路:
谷歌到是换行问题:LR = \n, CRLR = \r\n, CR = \r,跨平台导致之。
其实好解决,就是统一成\n即可。
方案:
1、把pycharm的换行配置改成Unix and OS X(\n) ;
2、git 配置如下:
git config --global core.autocrlf input这样子git commit的时候,如果我们是CRLF,会报错...如果是CR的话,依旧不会报错,真是可恶。git只能帮我们到这里了吗?
3、写个脚本帮我们把之前被影响的文件修改回来。
这个本来想找现有轮子的,结果无论是doc2unix还是什么别的,都无法解决这个CR换行符也就是\r的问题,CRLF和LF倒是转的挺溜的,无奈自己造轮子:
# coding=utf-8import osroot = '/Users/ouyang/PycharmProjects/myApp/'all_cnt = real_cnt = 0for root, dirs, files in os.walk(root): for file in files: fullpath = os.path.join(root, file) if file.split('.')[-1] == 'py': print fullpath tmplines = [] all_cnt += 1 with open(fullpath, 'r') as infile: lines = infile.readlines() if len(lines) == 1: # 如果是CR模式,则读出来的lines只有一行... real_cnt += 1 print 'CR MODE!!!' all = lines[0].replace('\r','\n') with open(fullpath, 'w') as outfile: outfile.write(all)print all_cnt, real_cnt
阅读全文
1 0
- python 关于git下unix和windows换行符不同导致稍微改动一行代码git diff就是全部文件对比的解决方案
- Git:关于git diff 是和谁对比的问题
- git diff 将当前改动的文件作为patch
- Windows下通过Git管理创建于Linux的项目,提示文件已修改,Diff得知文件的mode不同
- git换行符自动转换导致整个文件被修改的解决方案
- git diff:对比working tree、stage、commit文件之间的不同
- windows下Git的换行符设置
- windows的npm导致Git慢解决方案
- Linux下git diff对比两个文件夹
- 多操作系统平台协同开发时 GIT 的注意事项: 不同操作系统中的换行符(不要使用git的换行符自动转换功能,并且,尽可能保证代码的换行符都是unix); 避免使用第三方插件(如 EGit );
- [转]多操作系统平台协同开发时 GIT 的注意事项: 不同操作系统中的换行符(不要使用git的换行符自动转换功能,并且,尽可能保证代码的换行符都是unix); 避免使用第三方插件(如 EGit );
- Windows下Git-preview禁止自动转换文件的换行符
- windows下建立文件的换行符^M导致linux下的shell脚本运行错误的解决方案
- git windows下换行符问题
- Git diff 比较不同版本的差异
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- (POJ
- Mysql 编码原理--中文乱码
- struts2 中遇到的标签
- java和python对比
- extern 函数声明
- python 关于git下unix和windows换行符不同导致稍微改动一行代码git diff就是全部文件对比的解决方案
- CMP
- 深入vue组件
- vue.js中生命周期与相关函数的使用总结
- 2、python面向对象之对象的属性
- spring MVC链接数据库与JDBC连接数据库
- 最新精华版申请苹果开发者账号-企业版
- 弹性伸缩布局-fle
- HDU 3966 Aragorn's Story