Windows系统下Git换行符问题的完整解决方案

这个问题是换行符差异 导致的,通常是 CRLF(\r\n)LF(\n) 在 Windows 和 Unix/Linux 系统之间的差异。

如果你使用的是小乌龟,通过修改小乌龟的设置即可解决问题,亲测有效。

常见解决方案:

1. 核心设置(推荐)

在 Git Bash 或命令行中执行:

bash 复制代码
# 提交时自动将 CRLF 转换为 LF
git config --global core.autocrlf true

# 或者更严格的设置(Windows推荐)
git config --global core.autocrlf input

# 检查当前设置
git config --global core.autocrlf

2. 更彻底的解决方案

bash 复制代码
# 1. 设置 git 不检测换行符变化
git config --global core.safecrlf false

# 2. 设置 git 不自动转换换行符
git config --global core.autocrlf false

# 3. 设置 git 的 diff 忽略换行符差异
git config --global core.whitespace cr-at-eol

3. 使用 .gitattributes 文件(项目级解决方案)

在项目根目录创建 .gitattributes 文件,内容:

复制代码
# 对所有文件设置
* text=auto eol=lf

# 或者指定特定文件类型
*.html text eol=lf
*.css text eol=lf
*.js text eol=lf
*.json text eol=lf
*.md text eol=lf

4. 如果你已经提交了有问题的文件

bash 复制代码
# 重置工作区
git rm --cached -r .
git reset --hard

# 或者只重置特定文件
git checkout -- <file>

5. 针对 TortoiseGit(小乌龟)的额外设置

  1. 右键 → TortoiseGit → Settings
  2. 在 "Git" 标签页下:
    • 修改 "Global" 配置

    • 添加或修改:

      复制代码
      [core]
          autocrlf = true
          safecrlf = false

推荐配置组合:

对于 Windows 用户:

bash 复制代码
git config --global core.autocrlf true
git config --global core.safecrlf false

对于跨平台团队:

bash 复制代码
git config --global core.autocrlf input

验证设置:

bash 复制代码
# 查看所有相关配置
git config --global --list | grep -E "(core|autocrlf|safecrlf)"

注意:这些设置主要影响新提交的文件。对于已有文件,可能需要先统一换行符格式再重新提交。

相关推荐
午安~婉12 小时前
Git中SSH连接
前端·git·gitee
阿虎儿12 小时前
Git exclude 功能解析
git
FreeBuf_13 小时前
Windows NT OS内核提权漏洞PoC已公开
windows
隔窗听雨眠14 小时前
VS Code Git工作树:多分支并行开发的完整实践方案
git
^yi14 小时前
【Linux系统编程】快速上手git仓库管理,核心三板斧
git
雲帝15 小时前
Windows虚拟机UDP大包分片排障
windows·网络协议·udp
郝同学今天有进步吗15 小时前
构建 LangGraph Code Review Agent(四):文件过滤与 AnalysisPackage 分包
git·python·ai·code review
寒水馨16 小时前
Windows下载、安装scrcpy-v4.1(附安装包scrcpy-win64-v4.1.zip)
windows·scrcpy·投屏工具·安卓投屏·usb调试·android投屏·屏幕镜像
神仙别闹16 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
love530love1 天前
OpenClaw Windows Companion 桌面客户端 连接 LM Studio 完整配置指南
人工智能·windows·python·openclaw