Git entfernt Upstream aus dem lokalen Repository

89

Ich arbeite mit einer Ruby on Rails-Anwendung und versuche, eine Gabel zu synchronisieren. Es ist erwähnenswert, dass ich auch auf einem Mac bin. Ich habe folgende Aktion ausgeführt:

$ git remote -v

um einen Überblick über mein lokales Repository zu erhalten. Ich habe es vermasselt, als ich versucht habe zu gehen upstream:

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

Wann hätte ich Foo groß schreiben sollen:

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

Die Frage ist, wie ich das entferne, upstreamweil jedes Mal, wenn ich versuche, dies zu ändern, ein fatalFehler auftritt.

user2603138
quelle

Antworten:

148

Mit git Version 1.7.9.5 gibt es keinen Befehl zum Entfernen für Remote. Verwenden Sie stattdessen "rm".

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

oder, wie in der vorherigen Antwort erwähnt, funktioniert set-url.

Ich weiß nicht, wann sich der Befehl geändert hat, aber Ubuntu 12.04 wurde mit 1.7.9.5 ausgeliefert.

bmacnaughton
quelle
36

Git Remote Manpage ist ziemlich einfach:

Verwenden

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

oder aktualisieren Sie einfach die URL direkt:

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

oder wenn Sie damit vertraut sind, aktualisieren Sie einfach die .git / config direkt - Sie können wahrscheinlich herausfinden, was Sie ändern müssen (als Übung für den Leser übrig).

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

===

* In Bezug auf 'git remote rm' vs 'git remote remove' - dies hat sich um git 1.7.10.3 / 1.7.12 2 geändert - siehe

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.
Bert F.
quelle
1
Diese Antwort scheint aktualisiert zu werden. In Git 1.7.9 git remote remove upstreamwird 'Fehler: Unbekannter Unterbefehl: Entfernen' erzeugt
Michael Scheper
17
$ git remote remove <name>

dh.

$ git remote remove upstream

das sollte den Trick machen

Rodelm
quelle
9

In Git Version 2.14.3,

Sie können Upstream mit entfernen

git branch --unset-upstream

Mit dem obigen Befehl wird auch der Tracking-Stream-Zweig entfernt. Wenn Sie also eine Rease aus dem von Ihnen verwendeten Repository erstellen möchten

git rebase origin master 

anstatt git pull --rebase

Ashwin Balasundaram
quelle
1
Dies funktionierte perfekt für meine Niederlassung mit 2 verschiedenen Upstreams
Jason