美文网首页
git - 换行符

git - 换行符

作者: sunyelw | 来源:发表于2020-01-16 10:30 被阅读0次

    git:除了生孩子我啥都会,不过这只是暂时的,未来我可能也会生孩子

    这个问题一般只有在新机器上执行git操作时会碰到,当你设置好了一般情况下不会再出现,所以有点容易忘,记一笔。

    详情见官方文档,以下是原文

    core.autocrlf
    假如你正在 Windows 上写程序,而你的同伴用的是其他系统(或相反),你可能会遇到 CRLF 问题。 这是因为 Windows 使用回车(CR)和换行(LF)两个字符来结束一行,而 MacLinux 只使用换行(LF)一个字符。 虽然这是小问题,但它会极大地扰乱跨平台协作。许多 Windows 上的编辑器会悄悄把行尾的换行字符转换成回车和换行,或在用户按下 Enter 键时,插入回车和换行两个字符。

    Git 可以在你提交时自动地把回车和换行转换成换行,而在检出代码时把换行转换成回车和换行。 你可以用 core.autocrlf 来打开此项功能。 如果是在 Windows 系统上,把它设置成 true,这样在检出代码时,换行会被转换成回车和换行:

    $ git config --global core.autocrlf true
    

    如果使用以换行作为行结束符的 LinuxMac,你不需要 Git 在检出文件时进行自动的转换;然而当一个以回车加换行作为行结束符的文件不小心被引入时,你肯定想让 Git 修正。 你可以把 core.autocrlf 设置成 input 来告诉 Git 在提交时把回车和换行转换成换行,检出时不转换:

    $ git config --global core.autocrlf input
    

    这样在 Windows 上的检出文件中会保留回车和换行,而在 MacLinux 上,以及版本库中会保留换行。

    如果你是 Windows 程序员,且正在开发仅运行在 Windows 上的项目,可以设置 false 取消此功能,把回车保留在版本库中:

    $ git config --global core.autocrlf false
    

    大致总结一下

    1. 搞清楚两个地方的换行符分别是什么 - 本地开发代码托管
    2. 现在换行符基本就两个回车换行(CRLFWindows)与换行(LFLinuxMac),而classic mac用过回车(CR)作为换行符,现在已经不使用了
    3. 然后考虑二者的兼容性进行相应设置

    举例

    1. Windows开发时是CRLF,服务器是Linux的话就是LF,这种情况需要做换行符的自动切换,即提交时CRLF转成LF,而迁出时LF转成CRLF,这点需要以下设置
    $ git config --global core.autocrlf true
    
    1. 如果开发环境与服务器环境的换行符一致,都是WindowsLinuxMAC),那就可以关闭此设置(默认是不设置的,这种情况取决于你的IDECMD
    $ git config --global core.autocrlf false
    

    后面有机会多写写git的奇技淫巧,简直太强了

    相关文章

      网友评论

          本文标题:git - 换行符

          本文链接:https://www.haomeiwen.com/subject/fuqfzctx.html