El central
repositorio tuvo que configurarse en un nuevo servidor, por lo que creé un nuevo control remoto en mi repositorio local y lo presioné.
Pero ahora cuando lo hago git pull
, dice que estoy al día. Está mal, me está hablando de la antigua rama remota, no de la nueva, que sé que de hecho tiene nuevos compromisos para buscar.
¿Cómo cambio mi sucursal local para rastrear un control remoto diferente?
Puedo ver esto en el archivo de configuración de git pero no quiero estropear las cosas.
[branch "master"]
remote = oldserver
merge = refs/heads/master
Respuestas:
Usando git v1.8.0 o posterior:
git branch branch_name
--set-upstream-to
your_new_remote/branch_name
O puede usar el
-u
interruptor:git branch branch_name
-u
your_new_remote/branch_name
Usando git v1.7.12 o anterior:
git branch --set-upstream branch_name your_new_remote/branch_name
fuente
git branch --unset-upstream
- luego funciona como se indica en esta respuesta (o con la siguientegit push -u / --set-upstream
).Para mí la solución fue:
Entonces:
fuente
set-url
y olvidó volver a configurarlo, los futurosgit push
comandos fallaríanCon un git actualizado (2.5.5), el comando es el siguiente:
Esto actualizará la rama rastreada remota para su rama local actual
fuente
git branch --set-upstream-to=origin/develop
elevó el error:error: the requested upstream branch 'origin/develop' does not exist
. Anteriormente, cambié el nombre de una rama remota para delelop.git fetch --all
tal vez?Otra opción para tener un gran control sobre lo que está sucediendo es editar sus configuraciones a mano:
o la taquigrafía
Luego edite el archivo a voluntad, guárdelo y se aplicarán sus modificaciones.
fuente
Si está sano, editar el archivo de configuración es lo suficientemente seguro. Si quieres ser un poco más paranoico, puedes usar el comando de porcelana para modificarlo:
Por supuesto, si observa la configuración antes y después, verá que hizo exactamente lo que iba a hacer.
Pero en su caso individual, lo que haría es:
Es decir, si el nuevo servidor va a ser el control remoto canónico, ¿por qué no llamarlo origen como si lo hubiera clonado originalmente?
fuente
remote rename
no haría lo que se le pide, ya que cambia el nombre del control remoto tanto en[remote]
configuraciones como en[branch]
configuraciones. Entonces, lo que hay que hacer en este caso es editar el archivo de configuración y hacer lo que está diciendo (cambiar el nombre de los controles remotos) solo en las[remote]
líneas de configuración.o
fuente
git fetch
. Había creado una nueva sucursal en Bitbucket y quería cambiar a ella. git no sabe acerca de los cambios remotos, así que tuve que hacerlogit fetch
antesgit checkout feature/new-feature-branch
. Espero que esto ayude a alguien más.Este es el comando más fácil:
Por ejemplo, dado el comando
git remote -v
produce algo como:Para cambiar a seguir al equipo en su lugar:
fuente
Puede eliminar su sucursal actual y hacer:
O cambie cambiar el servidor remoto al actual en la configuración
fuente
git checkout --track -b local_branch_name origin/branch_name
Según lo que entiendo de la última documentación de git , la sinopsis es:
Este uso parece ser un poco diferente a la respuesta de urschrei, ya que en su sinopsis es:
¿Supongo que volvieron a cambiar la documentación?
fuente
En la última versión de git como 2.7.4 ,
git checkout branch_name
# nombre de rama que desea cambiar la rama de seguimientogit branch --set-upstream-to=upstream/tracking_branch_name
#upstream - nombre remotofuente
He encontrado útil la publicación de @critikaster , excepto que tuve que ejecutar estos comandos con GIT 2.21:
fuente
la forma más fácil es simplemente avanzar a la nueva sucursal:
fuente