Will not delete all non-push URLs
Git 远程 URL 修改
问题
1 2
| PS D:\\Git\\shenjuexiao> git remote set-url --delete gitee git@gitee.com:shenjuexiao/shenjuexiao.git fatal: Will not delete all non-push URLs
|
这个错误是因为你试图删除远程仓库 gitee 的唯一 URL,Git 不允许这样做——每个远程仓库至少需要保留一个 URL。
解决方案
方案一:先添加新 URL,再删除旧的
1 2 3 4 5
| git remote set-url --add gitee git@gitee.com:new-repo.git
git remote set-url --delete gitee git@gitee.com:shenjuexiao/shenjuexiao.git
|
方案二:直接修改 URL(推荐)
1 2
| git remote set-url gitee git@gitee.com:new-repo.git
|
方案三:删除整个远程仓库再重新添加
1 2 3 4 5
| git remote remove gitee
git remote add gitee git@gitee.com:new-repo.git
|
方案四:查看当前所有 URL,确认情况
1 2
| git remote get-url --all gitee
|
最常见的使用场景
如果你是想修改远程仓库地址,直接用方案二最简单:
1
| git remote set-url gitee git@gitee.com:新的仓库地址.git
|
如果你是想添加多个推送地址(同时推送到多个仓库),用方案一。
重命名远程仓库
1
| git remote rename github origin
|
这个命令会:
- 将远程仓库
github 重命名为 origin
- 保留所有原有的 URL 和配置
- 更新所有本地跟踪分支(如
github/main → origin/main)
验证是否成功
你应该能看到类似这样的输出:
1 2
| origin git@github.com:你的用户名/仓库名.git (fetch) origin git@github.com:你的用户名/仓库名.git (push)
|
注意事项
- 如果
origin 已经存在,这个命令会报错。你需要先删除或重命名现有的 origin
- 如果你的
origin 已经指向其他仓库,可以先确认一下:
1 2
| git remote get-url origin
|
如果 origin 已经存在且不是你想用的,可以先删除它:
1 2
| git remote remove origin git remote rename github origin
|
执行后记得检查一下 git remote -v 确认结果正确。