210208-git diff ^M不同操作系统下换行区别

文章目录
  1. II. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注

不同操作系统下的换行不一致,当一个项目的开发者分别再linux/mac/win下做了代码提交改动之后,使用git diff命令时,可能会发现,即便啥也没改,当时有很多变动,显示^M的差别

主要原因就是换行的问题

解决这个问题的一个办法就是统一换行

1
git config --global core.autocrlf true

因为Linux和Mac都是使用LF ,Windows 则是CRLF,所以在我们按下回车换行时,虽然肉眼的展示效果一致,当时实际上却是不一样的

  • windows: CRLF = \r\n
  • mac/linux: lf = \n

GitHub建议你应该只用\n来做为新行的开始,当然建议只是建议;一个原则就是我们希望可以统一,一分代码,不管在什么操作系统下,表现一致(包括换行、编码等)

使用core.autocrlf参数,设置为ture时,Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF

Linux或Mac系统使用LF作为行结束符,因此你不想Git在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正, 把core.autocrlf设置成input来告诉Git在提交时把CRLF转换成LF,签出时不转换

1
git config --global core.autocrlf input

II. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

# git

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×