Git eliminando aguas arriba del repositorio local

94

Estoy trabajando con una aplicación ruby ​​on rails y estoy tratando de sincronizar una bifurcación. Vale la pena mencionar que también estoy en una Mac. Cometí la siguiente acción:

$ git remote -v

para obtener una vista de mi repositorio local. Me equivoqué al intentar ir upstream:

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

Cuando debería haber escrito Foo en mayúscula:

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

La pregunta es ¿cómo elimino el upstreamporque cada vez que intento cambiarlo, vuelve con la creación de un fatalerror?

user2603138
fuente

Respuestas:

150

Usando git versión 1.7.9.5, no hay un comando "eliminar" para el control remoto. En su lugar, utilice "rm".

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

o, como se señaló en la respuesta anterior, set-url funciona.

No sé cuándo cambió el comando, pero Ubuntu 12.04 se envió con 1.7.9.5.

bmacnaughton
fuente
37

La página de manual remota de git es bastante sencilla:

Utilizar

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

o simplemente actualice la URL directamente:

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

o si se siente cómodo con él, simplemente actualice el .git / config directamente; probablemente pueda averiguar qué necesita cambiar (se deja como ejercicio para el lector).

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

===

* Con respecto a 'git remote rm' vs 'git remote remove', esto cambió alrededor de git 1.7.10.3 / 1.7.12 2 - ver

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
fuente
1
Esta respuesta parece requerir una actualización. En git 1.7.9, git remote remove upstreamproduce 'error: subcomando desconocido: eliminar'
Michael Scheper
22
$ git remote remove <name>

es decir.

$ git remote remove upstream

Eso debería hacer el truco

rodelm
fuente
11

En la versión 2.14.3 de git,

Puede eliminar aguas arriba usando

git branch --unset-upstream

El comando anterior también eliminará la rama de la secuencia de seguimiento, por lo tanto, si desea volver a establecer la base del repositorio, debe usar

git rebase origin master 

en vez de git pull --rebase

Ashwin Balasundaram
fuente
1
Esto funcionó perfectamente para mi rama con 2 upstreams diferentes
Jason