同一服务器移动Git裸仓库后git push失败,正确操作流程是什么?
问题原因说明
这个现象完全符合预期:git remote set-url 命令只会修改[remote "xxx"]配置段下的url属性,不会修改分支绑定的remote配置。
你报错的核心原因有两个:
- 你的master分支配置里的
remote字段直接填写了旧的相对路径../bare-repo.git,没有使用origin这个远程别名。执行无参数的git push时,Git会优先读取当前分支绑定的remote配置,直接访问旧路径导致报错。 - 从你贴的配置看,
origin的url也存在拼写错误:你配置里写的是/git/bare.repo.git(中间是点),实际应该是/git/bare-repo.git(中间是横杠),这也是你即使指定push到origin也会出错的原因。
正确操作流程
- 第一步:修正origin远程地址的拼写错误
git remote set-url origin /git/bare-repo.git
- 第二步:将master分支的remote绑定到origin别名,避免后续修改远程地址时还要重复修改分支配置
git config branch.master.remote origin
- 第三步:验证配置是否生效
执行git config branch.master.remote,输出应为origin
执行git remote -v,确认origin的push/fetch地址均为/git/bare-repo.git - 第四步:测试推送
git push
后续如果再调整裸仓库的存储路径,只需要执行一次git remote set-url修改origin地址即可,所有绑定到origin的分支都会自动使用新地址,不需要额外修改分支配置。
内容的提问来源于stack exchange,提问作者phunsoft
相关产品推荐
相关产品推荐

