如何查看GitHub提交中换行符变更及网页端Diff里的CR字符?
查看GitHub提交中的换行符变更及CR字符方法
一、如何查看某次提交是否发生换行符变更?
本地命令行方式
- 执行
git diff --check <提交哈希>^ <提交哈希>:该命令会检查提交前后的文件,直接高亮显示换行符变更、行尾空格等格式问题。 - 执行
git show <提交哈希> --name-only | xargs -I {} bash -c "echo {}:; git show <提交哈希>^:{} | file -; git show <提交哈希>:{} | file -":通过file命令对比提交前后文件的换行符类型(比如显示“ASCII text, with CRLF line terminators”代表CRLF格式,“ASCII text”代表LF格式)。
GitHub网页界面方式
- 观察文件变更状态:如果某个文件没有内容修改却被标记为“modified”,大概率是换行符类型发生了变更。点击进入该文件的Diff视图,GitHub会在顶部提示“LF will be replaced by CRLF”或类似的换行符转换提示(前提是仓库开启了autocrlf相关配置)。
- 对比原始文件:分别打开提交前后的文件Raw视图,下载后用支持显示控制字符的编辑器(如VS Code、Notepad++)对比换行符类型。
二、GitHub网页Diff中查看CR字符的方法(除大小推断)
- 开启空白字符显示:在Diff页面右上角点击齿轮图标,勾选“Show whitespace changes”。开启后,换行符的差异(包括CR的存在)会被可视化标记,比如CRLF与LF的差异会在每行末尾显示为额外的空白标记。
- 查看Raw原始内容:进入文件的Raw视图,将内容复制到支持显示控制字符的编辑器中,开启“显示不可见字符”功能(VS Code可按Ctrl+Shift+P搜索“Toggle Render Whitespace”,Notepad++启用“显示所有字符”),CR字符会显示为
^M或对应标记。 - 浏览器控制台辅助判断:在Raw视图的网页控制台中执行
document.body.textContent.split('\n').forEach(line => console.log(line.endsWith('\r') ? '该行含CR字符' : '该行无CR字符')),可快速批量判断每行是否包含CR。
内容的提问来源于stack exchange,提问作者kataba
相关产品推荐
相关产品推荐

