无法移除远程仓库源

48

我在 OS X 上运行 git 1.8.0,每个新的 git 仓库似乎都有一个名为“origin”的远程仓库:

$ git init
$ git remote
origin

奇怪的是我无法将其删除:

$ git remote remove origin
error: Could not remove config section 'remote.origin'

因此,我无法添加一个名为origin的新远程。这是为什么?我该如何改变它?


14
听起来你的全局配置文件(~/.gitconfig,设置姓名、电邮等的地方)中有一个以 [ remote "origin" ] 开始的部分。不确定它是怎么出现的,但如果你移除这个部分,症状应该就会消失。 - twalberg
2
啊,你说得对@twalberg:我正在使用这个技巧,但不幸的是,它会导致所有使用git init创建的仓库都认为自己有一个起源但没有URL。 - Trevor Burnham
4个回答

80

您应该可以使用以下方法删除 origin

git remote rm origin

不必这样做,你可以使用set-url来更改origin

git remote set-url origin "https://..." 

9
谢谢,set-url 命令确实有效。不过,希望能解释一下为什么我的电脑上新建的 Git 仓库已经有了名为 origin 的远程仓库,但是却没有相应的配置项。 - Trevor Burnham
3
“origin” 被硬编码为默认的推送/拉取目标,请参考分支的 git-config 条目 <name>.remote。 - jthill
1
@TrevorBurnham 如果你想使用不同的名称,请参阅 git clone-o/--origin 选项。 - Jed

2
打开.git目录并编辑配置文件,找到[remote "origin"]所在位置。

13
问题就在这里:.git/config 文件中没有提到 origin 或任何其他的 remote。这就是为什么 git remote remove origin 无法工作的原因。 - Trevor Burnham
惊人的,最好的方法是这样做。 - sg28

0

我是这样解决我的问题的。首先,我使用以下命令使用vim打开了config文件。

$ vim .git/config

我将我的文件修改为以下内容:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = false
[branch "master"]
[remote "origin"]
        url = git@192.168.200.79:xxx.git
        fetch = +refs/heads/*:refs/remotes/origin_iOS/*

现在,当我执行命令git push时,它会理解,因为默认情况下它会推送到origin,而我的服务器上已将其设置为origin_iOS

您可以通过remote -v命令检查您的源配置:

$ git remote -v
origin  git@192.168.200.79:xxxx.git (fetch)
origin  git@192.168.200.79:xxx.git (push)

如果你没有'origin',你会像我一样在通常的'git push'时遇到麻烦。因为我在我的配置中有'origin_iOS',所以我不得不输入'git push origin_iOS master'

0
查看全局git配置文件 C:\Users\yourusername.gitconfig 或者 /etc/.gitconfig
如果在.gitconfig文件中配置了[remote "origin"],(或者本地的.git\config) 那么"$git remote rm origin"命令将无法生效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接