una tag remota rama especifica crear clonar cambiar git push remote-branch

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