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)"

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

相关推荐
ruanCat5 小时前
加了 .gitattributes 就万事大吉?我差点毁了整个团队的 Git 工作流
git
今夕资源网5 小时前
坚果手机直连Windows,打开软件实现键鼠操作TNT系统 视频教程+所需软件(今夕存档)
windows·智能手机·tnt·smartisan·smartisan tnt·锤子系统·坚果手机
咋吃都不胖lyh5 小时前
查看 Git 本地仓库关联的远程仓库链接(URL)
git
wheelmouse77886 小时前
AI 时代的 Git 进阶术:如何优雅地让多个 Agent 并行开发
人工智能·git·ai编程
alphaTao7 小时前
LeetCode 每日一题 2026/3/16-2026/3/22
linux·windows·leetcode
阿昭L7 小时前
说说VirtualAlloc的第三个参数
windows
翱翔的苍鹰7 小时前
什么是 Deep Agents?
人工智能·windows·语言模型·自然语言处理·langchain·开源
今夕资源网11 小时前
windows11无法启用投屏功能 无线显示器无法添加可选功能 解决办法 Miracast修复脚本
windows·计算机外设·miracast·系统修复·无线显示器·投屏功能·投屏功能无法添加
如意.75916 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
内卷焦虑人士19 小时前
Windows安装WSL2+Ubuntu 22.04
linux·windows·ubuntu