Git仓库跨Windows服务器复制后显示异常变更与未跟踪文件问题求解
问题根因
该问题核心是两台Windows服务器的Git配置、文件元信息存在差异导致,常见触发因素包括:
- 两台设备的
core.autocrlf(换行符自动转换)配置不同,Git识别到换行符差异判定为文件变更 - 两台设备的文件权限/所有者元信息不同,Git默认检测权限变更,触发文件修改标记
- Total Commander复制时未严格对齐隐藏文件属性,或两台设备的
core.ignorecase(大小写敏感)配置差异,导致原本被.gitignore匹配的文件被识别为未版本化新文件
解决方案
步骤1:清空本地异常标记
确认服务器B上的仓库文件内容和远端完全一致后,执行以下命令直接清空未提交变更、删除未被版本控制的冗余文件:
# 重置暂存区和工作区到当前HEAD状态,丢弃所有被追踪文件的变更 git reset --hard HEAD # 强制删除所有未被版本控制的文件和目录 git clean -fd
执行完成后运行git status查看是否还有异常变更提示。
步骤2:对齐Git本地配置
如果步骤1执行后仍有变更提示,执行以下配置消除系统差异带来的识别错误:
# 仓库级配置:提交时自动转LF,检出时自动转CRLF(Windows系统标准配置) git config core.autocrlf true # 仓库级配置:忽略文件权限变更检测 git config core.filemode false # 仓库级配置:Windows系统下关闭大小写敏感检测 git config core.ignorecase true
配置完成后再次执行git reset --hard HEAD,运行git status确认状态是否正常。
步骤3:刷新TortoiseGit图标缓存
如果git status已经显示正常,但TortoiseGit仍显示红色异常标识,属于图标缓存失效问题,按以下操作刷新:
- 右键点击仓库空白处,选择「TortoiseGit」→「设置」→「图标覆盖」
- 点击「清除缓存」按钮,稍等几秒后按F5刷新资源管理器即可
内容的提问来源于stack exchange,提问作者Tom C.
相关产品推荐
相关产品推荐

