You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git仓库配置gitattributes指定换行类型未生效,求助排查

问题分析与解决方法

你的问题出在两个核心点:text=auto的模糊判断逻辑,以及未对已跟踪文件重新应用新的换行规则。

1. 修正.gitattributes配置

text=auto会让Git自动识别文件类型,这个逻辑可能覆盖你指定的eol规则。直接用text强制标记脚本为文本文件,确保换行规则被严格执行:

vm/linux*/**    text eol=lf
vm/windows*/**  text eol=crlf

2. 重新规范化仓库文件

Git不会自动对已跟踪文件应用新的gitattributes规则,需要手动触发重新规范化流程:

# 暂存未提交的更改(如有)
git stash

# 让Git按新规则重新处理所有文件的换行符
git add --renormalize .

# 提交规范化操作
git commit -m "Enforce line ending rules for Linux/Windows scripts"

# 恢复暂存的更改(如有)
git stash pop

3. 重新检出工作副本

最后重置工作副本,让新规则生效:

git checkout HEAD -- vm/

4. 检查全局配置(可选)

确保全局core.autocrlf设置不会干扰局部规则:

  • Linux开发主机上设置为input或false:
    git config --global core.autocrlf input
    
  • Windows构建主机上保持默认的true即可(gitattributes规则优先级更高,一般不会冲突)

完成以上操作后,Linux脚本在任何主机上检出都会保持LF换行,Windows脚本会保持CRLF换行,符合你的需求。

内容的提问来源于stack exchange,提问作者mat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:12:25