首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
V2EX  ›  git

请教: git diff 的 ^M 回车符是咋回事?

  •  
  •   suspended · 160 天前 · 1614 次点击
    这是一个创建于 160 天前的主题,其中的信息可能已经有所发展或是发生改变。

    repo 在 Github 上,本地是 macOS,改了几个字,diff 结果为啥会出现^M? 这个问题困扰很久了。

    git diff app.rb
    diff --git a/app.rb b/app.rb
    index fbf9bf3..afa8fd2 100755
    --- a/app.rb
    +++ b/app.rb
    @@ -85,9 +85,10 @@ Cuba.define do
               target
             end
           end
    +         res.headers['Access-Control-Allow-Origin'] = '*'^M
         end
    

    git version 2.1.4 @ macOS 10.12.6 git 未设置 core.eol ,也未设置 core.autocrlf

    9 回复  |  直到 2018-01-13 11:26:34 +08:00
        1
    okletswin   160 天前
    windows 的\n\r
        2
    Arnie97   160 天前 via Android
    在你修改之前,版本库里的这个文件就已经是 CRLF 换行了。
        3
    zo   160 天前
    如果是在 windows 下开发的话,会有回车换行的问题,表现在 git 上就是^M 了。
    当然 git 有个不是那么好用的智能转换,google 搜索 autocrlf 关键字,就可以看到为啥了。
    可以这样关掉:
    git config --global core.autocrlf false
    git config --global core.safecrlf false
        4
    sutra   160 天前
    @okletswin Windows 是 \r\n,不是 \n\r。
        5
    sutra   160 天前   ♥ 1
    ^M 是 \r 即回车键。

    脱字符表示法( Caret notation )是对 ASCII 码不可打印的控制字符的一种表示法。用一个脱字符 (^)后跟一个大写字符来表示一个控制字符的 ASCII 码值。

    https://zh.wikipedia.org/wiki/%E8%84%B1%E5%AD%97%E7%AC%A6%E8%A1%A8%E7%A4%BA%E6%B3%95
        6
    okletswin   160 天前
    @sutra 啊哈,我给记反了
        7
    lawfun   159 天前 via Android
    我是加的 autocrlf true,然后 git diff 看不到 ^m 了,但是 git clone 其他代码时 会自动加 ^m 了,然后就会有问题了。
        8
    suspended   159 天前
    @okletswin @Arnie97
    不应该啊,如果文件本来就是 crlf 结尾,那么 vim 打开也会有一堆 ^M,但是并没有啊。
        9
    suspended   159 天前
    @okletswin @Arnie97

    好吧,你们是对的。。。我一直以为 vim 会显示 \r 为 ^M,刚才测试了一下发现是古代的 vi 才会显示。原来这个文件确实是 crlf 折行的。 - -b
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2019 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 12:06 · PVG 20:06 · LAX 05:06 · JFK 08:06
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1