【问题标题】:Accidentally set "remote.master.url", cannot get rid of it anymore?不小心设置了“remote.master.url”,再也摆脱不掉了?
【发布时间】:2013-07-28 08:55:21
【问题描述】:

昨天,我需要更改存储库的远程 URL,因为我刚刚将 Bitbucket 设置为使用 SSH 密钥并想从 HTTPS 切换到 SSH。

在指向 repo 的远程地址时,我不小心使用了 ma​​ster 而不是 origin,如下所示:

git remote add master git@bitbucket.org:myaccount/myrepo.git

当我应该使用(后来确实使用)时:

git remote set-url origin git@bitbucket.org:myaccount/myrepo.git

我检查了 git config 以查看我是否不小心“破坏”了某些东西,并在其中发现了以下两行,据我所知,它们不属于我的其他存储库(否则,它们基本上看起来都一样) :

remote.master.url=git@bitbucket.org:myaccount/myrepo.git
remote.master.fetch=+refs/heads/*:refs/remotes/master/*

现在我有点困惑。 origin 通常不是我的远程存储库的快捷方式/别名,而 ma​​ster 不是我的本地存储库的快捷方式/别名吗? (或者可能是我本地 repo 的主 分支?我从来没有真正使用过不同的分支,所以我通常只有一个。)或者 remote master 代表主分支在我的远程存储库中? IE。我是否告诉 git 我有一个远程 master 分支来将其与其他分支(实际上并不存在!)区分开来?

很遗憾,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

但这只会导致 fatal: Will not delete all non-push URLs 错误消息,我不知道这意味着什么。 (只有一个谷歌结果,这是另一个 Stackoverflow 线程,它本身不处理错误消息:fatal: I don't handle protocol。旁注:太糟糕了,我没有足够的声誉让 user1888797 知道他可以检索带有git config --list的配置文件。)

有没有办法“重置”remote.master.url? 或者一旦设置就不能更改? 我应该忽略它吗? 以后会不会导致更多的混乱?

【问题讨论】:

    标签: git version-control


    【解决方案1】:

    你可以尝试重命名:

    git remote rename master origin
    

    或者remote master 代表我的远程存储库中的主分支?

    不,这里 'master' 只是一个远程的名称,它是一个引用值的键(远程 url)。

    如果远程origin仍然存在,那么:

    git remote remove master
    git remote set-url origin git@bitbucket.org:myaccount/myrepo.git
    

    【讨论】:

    • 成功了,谢谢! (原点仍然存在,所以我尝试了其他两个命令并且它们起作用了。)仍然不了解它背后的所有理论,但是我的配置文件中的两个 remote.master 行已经消失了。 (;
    • @Kay 太好了!它只是一个字符串,用作远程 url 的快捷方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多