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

Windows下Git推送至远程仓库报错‘couldn't set refs/heads/homepage’求助

问题:Windows推送Git分支到远程共享仓库失败,Mac正常,求永久解决办法

我遇到个头疼的问题:在Windows上往远程Git仓库推homepage分支时一直报错,但用Mac推送完全没问题。试了网上好几种方法都不管用,现在想找个一劳永逸的解决办法,不想每次都手动折腾。

报错信息

在Git BASH和GitHub Desktop里,报错是这样的:

remote: error: couldn't set 'refs/heads/homepage'
To file:////192.168.0.60/***
! [remote rejected] homepage -> homepage (failed to update ref)
error: failed to push some refs to ' file:////192.168.0.60/***'

用Git GUI的时候弹出的是关于无法更新引用的权限类提示。

临时救急(但不是长久之计)

我试过手动删掉远程裸仓库\\192.168.0.62\***\refs\heads路径下的homepage分支文件,删完确实能推成功,但每次遇到都要手动操作,太麻烦了,想找个永久方案。


永久解决方案建议

1. 检查Windows共享目录的权限(最可能的原因)

因为你的远程仓库是通过Windows共享目录访问的,Windows的文件权限和Mac差异很大:

  • 右键目标共享目录 → 属性 → 安全选项卡,确认你用来访问共享的Windows账号,拥有修改、写入该目录下所有子文件和文件夹的权限,一定要把权限应用到所有层级
  • 注意区分共享权限和NTFS权限,两个地方都要检查,确保没有限制写入refs/heads/下的分支文件

2. 修复远程裸仓库的引用问题

远程裸仓库的引用文件可能出现权限异常或者损坏,你可以在远程仓库所在的机器上(或者通过共享目录进入仓库路径)执行这条命令:

git update-server-info

它会更新仓库的服务器信息,修复可能的引用权限或索引损坏问题。

3. 替换file://协议,改用SSH推送(彻底解决共享问题)

Windows的file://共享经常会有文件锁定、权限兼容的问题,换成SSH协议推送会稳定很多:

  • 在远程仓库所在的机器上开启OpenSSH服务(Windows 10/11自带,直接在设置里启用即可)
  • 把Git远程地址从file:////192.168.0.60/***改成ssh://你的用户名@192.168.0.60/仓库绝对路径.git
  • 配置SSH密钥免密登录,之后推送就再也不用纠结共享权限的问题了

4. 排查Windows的文件锁定程序

有时候Windows的杀毒软件、后台文件扫描程序会锁定共享目录里的文件,导致Git没法修改refs/heads/homepage:

  • 暂时关闭杀毒软件或文件防护程序,再尝试推送
  • 确保没有其他文件管理器、编辑器正在打开远程仓库内的文件

如果权限检查没问题,我强烈建议改用SSH协议,这能从根源上避免Windows共享带来的各种奇怪问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:59:23