remota - git checkout tag
fatal: la rama ascendente de su rama actual no coincide con el nombre de su rama actual (5)
En mi caso git branch --unset-upstream
resolvió ese problema.
Después de hacer un checkout de la rama remota releases/rel_5.4.1
usando la GUI de Git, estoy viendo este mensaje de error inesperado cuando intento push
:
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:releases/rel_5.4.1
To push to the branch of the same name on the remote, use
git push origin rel_5.4.1
No sé de qué está hablando Git. Probablemente quiera presionar a origin releases/rel_5.4.1
ya que esa es la rama que revisé. Entonces ninguna de las dos opciones me parece correcta.
git status
dice que estoy en la rama rel_5.4.1
.
Aquí está la rama tal como aparece en mi .git/config
:
[branch "rel_5.4.1"]
remote = origin
merge = refs/heads/releases/rel_5.4.1
Que esta pasando?
Este error se puede solucionar de una vez por todas, con:
git branch releases/rel_5.4.1 -u origin/releases/rel_5.4.1
Cambia el flujo ascendente de la rama, para que coincida con el control remoto correcto (nuevamente).
Para el beneficio de los lectores que pueden perder el detalle probablemente más importante, bien escondido en los comentarios:
Esto se debe a la git config push.default
. Define lo que hace git
cuando ingresas git push
( ver enlace ).
En la pregunta, aparentemente la configuración se estableció en simple
(que es el valor predeterminado para git v2
), probablemente con
git config --global push.default simple
Esto significa que git
niega a presionar cuando la rama local y remota no coinciden exactamente. Para permitir empujar a la rama de seguimiento, hacer git pull
y git push
simétricos , usar
git config --global push.default upstream
Nota: Salir --global
distancia para simplemente cambiar la configuración para el repositorio de git
actual (local).
Parece que tener un nombre de sucursal local diferente al remoto no es lo que a Git
le gusta demasiado. Necesitarás emitir:
git push origin HEAD:releases/rel_5.4.1
explícitamente en cada empuje
Su rama local se llama rel_5.4.1
pero la rama remota es releases/rel_5.4.1
(en lo que respecta a Git, el /
no tiene ningún significado especial en los nombres de las ramas, excepto para facilitar su lectura para el ojo humano).
Cuando presiona, Git duda de si desea enviar su rama a releases/rel_5.4.1
(el nombre de la sucursal remota) o si desea crear una nueva sucursal remota. Sin embargo, sí nota la similitud de los nombres.
A menos que desee crear una nueva rama, el comando correcto es
git push origin HEAD:releases/rel_5.4.1
También podrías usar
git push origin rel_5.4.1:releases/rel_5.4.1
Para corregir la advertencia de una vez por todas, cambie el nombre de su rama local para que coincida con el nombre remoto:
git branch -m releases/rel_5.4.1