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

在Azure使用Git推送新分支时遇文件名大小写冲突问题求助

解决Git推送Azure时的大小写冲突问题

核心问题

Windows系统默认不区分文件大小写,Git本地配置core.ignoreCase=true会让Git忽略大小写差异,但Azure开启大小写强制检查后,仓库中存在的两个仅大小写不同的文件会导致推送失败。

解决步骤

  1. 临时关闭本地Git大小写忽略
    在本地仓库目录执行:

    git config core.ignoreCase false
    

    这让Git能够识别大小写不同的文件,即使Windows文件系统不显示。

  2. 查看并删除重复文件
    先执行命令确认Git中记录的重复文件:

    git ls-files | grep -i filewithcaseissue
    

    会输出两个仅大小写不同的文件名。选择其中一个需要删除的,执行:

    git rm --cached FileWithCaseissue.cs  # 替换为实际要删除的文件名,注意大小写完全匹配
    

    然后提交这个修改:

    git commit -m "Remove duplicate file with case conflict"
    

    如果冲突是由最后一次提交引入的,也可以用git commit --amend修改该提交。

  3. 恢复本地Git配置
    问题解决后,恢复Windows下的默认配置:

    git config core.ignoreCase true
    
  4. 重新推送分支
    现在可以正常推送分支到Azure:

    git push origin <你的新分支名>
    

备选方案(如果上述方法无效)

如果重复文件存在于更早的历史提交中,使用交互式变基修改历史:

  1. 找到引入重复文件的提交的前一个提交ID,执行:
    git rebase -i <目标提交ID>
    
  2. 在弹出的编辑器中,将对应提交的指令改为edit并保存退出。
  3. 进入编辑模式后,执行删除缓存文件的命令:
    git rm --cached FileWithCaseissue.cs
    
  4. 修改该提交:
    git commit --amend
    
  5. 完成变基:
    git rebase --continue
    
  6. 强制推送修改后的分支(注意:仅在分支未被他人协作时使用):
    git push -f origin <你的新分支名>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:27:56