使用git remote set-url修改远程仓库URL未生效问题求助
问题描述
尝试将Git远程仓库从SSH切换为HTTPS,使用git remote set-url origin [HTTPS地址]命令后未生效,执行git remote -v查看仍显示SSH格式的地址:
> git remote -v origin [ssh格式地址] (fetch) origin [ssh格式地址] (pull)
已尝试set-url命令、修改用户名,远程仓库仍保持SSH格式,询问是否与其他SSH设置有关。
确认命令执行的正确性
确保你执行的git remote set-url命令中填入的是完整有效的HTTPS地址,比如git remote set-url origin https://github.com/你的用户名/仓库名.git,检查是否有拼写错误、漏写https://前缀的情况。检查并单独修改fetch/push URL
部分情况下可能为origin分别设置了fetch和push的独立URL,导致全局的set-url命令只修改了其中一个或未生效。先执行git remote show origin查看详细配置,确认fetch和push的URL是否为单独配置。如果是,分别执行以下命令修改:git remote set-url --fetch origin [你的HTTPS地址] git remote set-url --push origin [你的HTTPS地址]直接修改本地仓库配置文件
进入本地仓库的.git目录,打开config文件,找到[remote "origin"]区块,手动将url字段修改为HTTPS地址:[remote "origin"] url = https://github.com/你的用户名/仓库名.git fetch = +refs/heads/*:refs/remotes/origin/*保存文件后,执行
git remote -v验证是否修改成功。排查全局Git的URL替换配置
检查全局Git配置中是否存在url.<base>.insteadOf规则,这类规则会自动将HTTPS地址替换为SSH地址。执行git config --global --list查看配置列表,如果发现类似url.ssh://git@github.com/.insteadOf https://github.com/的条目,执行以下命令删除该规则:git config --global --unset url.ssh://git@github.com/.insteadOf确认当前操作的仓库路径
确保你是在目标本地仓库的根目录下执行的所有命令,避免因进错文件夹导致修改未作用到正确的仓库。
内容的提问来源于stack exchange,提问作者RoJuan

