Git удаляет апстрим из локального репозитория


94

Я работаю с приложением ruby ​​on rails и пытаюсь синхронизировать вилку. Стоит отметить, что я тоже использую 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ошибки?

Ответы:


150

При использовании 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.


37

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

или просто обновите URL напрямую:

$ 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' и '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.

1
Кажется, этот ответ требует обновления. В git 1.7.9 git remote remove upstreamвыдает ошибку: неизвестная подкоманда: удалить
Майкл Шепер


11

В git версии 2.14.3

Вы можете удалить апстрим, используя

git branch --unset-upstream

Вышеупомянутая команда также удалит ветвь потока отслеживания, поэтому, если вы хотите перебазировать из репозитория, вы используете

git rebase origin master 

вместо того git pull --rebase


1
Это отлично сработало для моей ветки с двумя разными
Джейсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.