巧用Git解决讨厌的换行符 CRLF 与 LF

        相信好多兄弟在pc写代码开发系统,然后系统在linux运行。但是它们的换行符是不一样的,分别是 CRLF 与 LF。虽然大部分文件不受影响,但是一些配置文件,比如shell文件还是会受到影响的。要特别注意,否则一时想不到就出问题,并且出了问题还不好定位。

        现在Git大行其道,逐渐代替svn。其中Git有一项目配置,很好的解决了换行符的问题。这个参数是core.safecrlf。它有三个值,命令的格式如下:
        git config --global core.autocrlf [false|input|true] 
        参数说明:

        false:不做任何转换,相关于没有这个功能。它保证代码的源汁原味,这时git仓库代码与本地pc开发代码一致。适用于大型团队的专职代码发布,环境部署人员。不需要开发代码,只是用来打包部署。
        input:它是半自动转换。表示只有向git仓库提交代码时,自动转换为UNIX模式,即LF。而从Git仓拉代码时不会转换。如果有些团队中的复合性人才,需要写代码,改配置,又要打包去linux发布环境。这时设为input,写完代码上传到Git,自动转为UNIX模式。而下载到本地时不转换,保证了下的代码为UNIX模式,即换行为LF。
        true:它是全自动转换。本地pc模式开发,上Git时自动转为UNIX,下载时自动转为pc模式。它适合全职开发人员,不用操心部署。反正我看到的全都是pc模式,转来转去的,都交给Git吧,我就不操心这个了,Git相当于全职保姆,爽歪歪。

        光这个还不够,谁能保证文件原来是UNIX模式,加了新代码为pc模式,或者反过来,一个文件中混合了两种模式?别急,还有一个命令,它是专门来检查是否二合一,出手的代码成串串的。即:core.safecrlf

        core.safecrlf 用户检查是否混用换行符。
        命令的格式如下:
        git config --global core.safecrlf [false|warn|true] 
        参数说明:

        false:不做任何检查
        warn:在提交时检查并警告
        true:在提交时检查,如果发现混用则拒绝提交
        建议使用最严格的 true 选项。初步开始不熟悉的情况下,可以使用 warn 作为参数。

 

你可能感兴趣的:(笔记,经验分享,git)