Git从本地存储库中删除上游

时间:2013-11-05 23:52:51

标签: git repository fetch

我正在使用ruby on rails应用程序,我正在尝试同步一个fork。值得一提的是,我也在Mac上。我采取了以下行动:

$ git remote -v

获取我本地存储库的视图。我试图去upstream时搞砸了:

$ git remote add upstream https://github.com/foo/repo.git

当我应该大写Foo时:

$ git remote add upstream https://github.com/Foo/repos.git

问题是我如何删除upstream,因为每次我尝试更改此内容时都会产生fatal错误?

4 个答案:

答案 0 :(得分:113)

使用git版本1.7.9.5,远程没有“删除”命令。请改用“rm”。

$ git remote rm upstream
$ git remote add upstream https://github.com/Foo/repos.git

或者,如前面的答案中所述,set-url有效。

我不知道命令何时更改,但Ubuntu 12.04随附1.7.9.5。

答案 1 :(得分:33)

git remote manpage非常简单:

使用

Older (backwards-compatible) syntax:
$ git remote rm upstream
Newer syntax for newer git versions: (* see below)
$ git remote remove upstream

Then do:    
$ git remote add upstream https://github.com/Foo/repos.git

或直接更新网址:

$ git remote set-url upstream https://github.com/Foo/repos.git

或者如果您对此感到满意,只需直接更新.git / config - 您可以找出需要更改的内容(作为读者的练习)。

...
[remote "upstream"]
    fetch = +refs/heads/*:refs/remotes/upstream/*
    url = https://github.com/foo/repos.git
...

===

*关于'git remote rm'vs'git remote remove' - 这改变了git 1.7.10.3 / 1.7.12 2 - 参见

https://code.google.com/p/git-core/source/detail?spec=svne17dba8fe15028425acd6a4ebebf1b8e9377d3c6&r=e17dba8fe15028425acd6a4ebebf1b8e9377d3c6

Log message

remote: prefer subcommand name 'remove' to 'rm'

All remote subcommands are spelled out words except 'rm'. 'rm', being a
popular UNIX command name, may mislead users that there are also 'ls' or
'mv'. Use 'remove' to fit with the rest of subcommands.

'rm' is still supported and used in the test suite. It's just not
widely advertised.

答案 2 :(得分:3)

$ git remote remove <name>

$ git remote remove upstream

应该做的伎俩

答案 3 :(得分:1)

在git版本2.14.3中,

您可以使用

删除上游
git branch --unset-upstream

上面的命令还将删除跟踪流分支,因此,如果要从已使用的存储库中重新定位,请使用

git rebase origin master 

代替git pull --rebase