昨天,我需要更改存储库的远程URL,因为我刚刚设置了Bitbucket以使用SSH密钥并希望从HTTPS切换到SSH。
指向repo的远程地址时,我意外地使用了 master 而不是 origin ,如下所示:
git remote add master git@bitbucket.org:myaccount/myrepo.git
当我应该使用(后来确实使用)时:
git remote set-url origin git@bitbucket.org:myaccount/myrepo.git
我检查了git配置,看看我是否意外地“破坏”某些内容并发现其中的两行并不是我能看到的其他存储库的一部分(否则,它们基本上看起来都一样) :
remote.master.url=git@bitbucket.org:myaccount/myrepo.git
remote.master.fetch=+refs/heads/*:refs/remotes/master/*
现在我有些困惑。 origin 通常是我的远程存储库的快捷方式/别名,而 master 是我本地存储库的快捷方式/别名吗? (或者也许是我本地仓库的主要分支?我从来没有真正使用过不同的分支机构,所以我通常只有一个分支机构。)或远程主机代表主分支机构在我的远程存储库?即我告诉git我有一个远程主分支,以区别于其他分支(实际上并不存在!)?
不幸的是, remote.master.url 并没有出现很多Google搜索结果。在Stackoverflow线程中提到过一次:What is "git remote add ..." and "git push origin master"?,但该线程没有给出如何再次删除它的任何解释。
我试图通过这样做摆脱 remote.master.url :
git remote set-url --delete master git@bitbucket.org:myaccount/myrepo.git
但这只会导致致命:不会删除所有非推送网址错误消息,其中我不知道这意味着什么。 (只有一个谷歌结果,这是另一个Stackoverflow线程,它不处理错误信息本身:fatal: I don't handle protocol。旁注:太糟糕我没有足够的声誉让user1888797知道他可以使用git config --list
检索配置文件。)
有没有办法“重置” remote.master.url ? 或者它一旦设定就不能改变吗? 我应该忽略它吗? 可能会在以后导致更多混乱?
答案 0 :(得分:3)
您可以尝试重命名:
git remote rename master origin
或者远程主站是否代表我的远程存储库中的主分支?
不,这里'master
'只是一个遥控器的名称,它是一个引用一个值(远程网址)的键。
如果远程origin
仍然存在,则:
git remote remove master
git remote set-url origin git@bitbucket.org:myaccount/myrepo.git