Git拉取dev分支时反复提示将dev合并入dev的故障怎么解决?
问题根因
- 该问题由本地Windows设备的Git配置与远端仓库配置不匹配导致,90%以上的场景是**换行符自动转换规则(core.autocrlf)**不一致,其次是文件权限校验(core.filemode)、大小写忽略(core.ignorecase)配置不匹配。本地Git会在拉取文件后自动转换内容/属性,识别为未提交的变更,因此反复触发无意义的合并操作。
分步解决方法
1. 清理本地冲突变更
先清空当前仓库的未提交内容,避免残留变更干扰配置生效:
git reset --hard origin/dev
提示:该操作会删除本地dev分支所有未推送的提交和未提交改动,如有本地未推的修改请先备份到其他分支。
2. 配置当前仓库的Git规则
在仓库根目录执行以下命令,对齐团队/远端的统一配置:
- 换行符规则:Windows设备默认设置为本地用CRLF、推送时自动转成远端标准LF即可
若团队统一要求远端存储CRLF换行符,可改为git config core.autocrlf truegit config core.autocrlf false - 关闭文件权限校验:Windows文件权限体系和Linux/macOS不兼容,关闭后不会将权限变动识别为文件修改
git config core.filemode false - 关闭大小写忽略(可选,适配有文件名大小写变更的场景)
git config core.ignorecase false
3. 刷新本地Git索引
让新配置覆盖旧的索引记录:
git rm --cached -r . git reset --hard
4. 验证修复效果
执行git pull origin dev,拉取后检查是否还会出现多余的暂存变更,无变更即说明修复完成。
全局配置(可选)
如果要避免这台设备的其他仓库出现同类问题,可执行全局配置:
git config --global core.autocrlf true git config --global core.filemode false
内容的提问来源于stack exchange,提问作者SeismicSandwhich
相关产品推荐
相关产品推荐

