¿Hay un atajo para decirle a Git que empuje la rama de seguimiento actual al origen?
Nota: Sé que puedo cambiar el comportamiento de inserción predeterminado , pero estoy buscando una solución ad-hoc que no cambie el comportamiento predeterminado.
Por ejemplo, supongamos que estoy en la rama feature/123-sandbox-testsque estaría usando
git push origin feature/123-sandbox-tests
lo cual es tedioso Estoy buscando un atajo, algo como
git push origin current
donde git sabe que es la corriente feature/123-sandbox-tests.
Editar : a partir de la versión 2.0, el comportamiento predeterminado de git ha cambiado a un comportamiento más intuitivo, que es lo que quería lograr. Vea esta pregunta SO para más detalles.
Edición 2 : la respuesta de ceztko es la mejor respuesta, ya que permite impulsar la rama actual, independientemente de la configuración.

git pushempujar solo la rama actual, pero en otras máquinas, puede presionar accidentalmente todas las ramas coincidentes.co, por lo que si tuviera que intentar incluso desplegar y luego verificar el código sin mi~/.gitconfigarchivo en esa VM, lo sabré de inmediato. Eso me permite sentirme bastante seguro acerca de cambiar el valor predeterminado de inserción aupstream.@, que está documentado como un alias válido paraHEAD. (pgit push -u origin @. ej. )Puede configurar git para empujar a la rama actual usando el siguiente comando
entonces solo haz
esto empujará el código a su rama actual.
fuente
push = refs/heads/current:refs/for/master/currenta una sección 'remota' en .git / config? Es decir, ¿es "actual" una palabra especial aquí? ¿O buscará una rama llamada "actual"?git push -u origin feature_branch_nameconfigurar upstream / tracking! Si usa un repositorio remoto al menos.Debería echar un vistazo a una pregunta similar en Comportamiento predeterminado de "git push" sin una rama especificada
Básicamente, explica cómo configurar el comportamiento predeterminado para impulsar la rama actual que se está ejecutando
git push. Probablemente lo que necesitas es:git config --global push.default currentOtras opciones:
fuente
Yo uso ese alias en mi configuración .bashrc
En el comando
$gpbtoma el nombre de la rama actual y lo empuja al origen.Aquí están mis otros alias:
fuente
Por lo que vale, el último atajo:
En mi
.bash_profiletengoalias push="git push origin HEAD", así que cuando el tipo ipushSé que estoy empujando a la rama actual estoy.fuente
Si está utilizando git 1.7.x, puede ejecutar el siguiente comando para configurar la rama de seguimiento remoto.
Luego, simplemente puede usar
git pushpara empujar todos los cambios. Para obtener una respuesta más completa, consulte la respuesta aceptada a una pregunta similar aquí.Si solo desea impulsar la rama actual con el comando de inserción, puede cambiar el comportamiento de inserción hacia arriba:
fuente
git config --global push.default upstreamconfigurará el comportamiento de empuje para empujar solo la rama actual.La forma más simple: correr
git push -u origin feature/123-sandbox-testsuna vez. Eso empuja la rama de la forma en que está acostumbrado a hacerlo y también establece la información de seguimiento ascendente en su configuración local. Después de eso, solo puedegit pushempujar las ramas rastreadas a sus controles remotos aguas arriba.También puede hacer esto en la configuración usted mismo configurando
branch.<branch name>.mergeel nombre de la rama remota (en su caso, el mismo que el nombre local) y, opcionalmente,branch.<branch name>.remoteel nombre del control remoto al que desea enviar (por defecto el origen). Si busca en su configuración, lo más probable es que ya haya uno de estos conjuntosmaster, por lo que puede seguir ese ejemplo.Finalmente, asegúrese de considerar la
push.defaultconfiguración. El valor predeterminado es "coincidencia", que puede tener resultados no deseados e inesperados. La mayoría de las personas que conozco encuentran que "upstream" es más intuitivo, lo que empuja solo a la rama actual.Los detalles sobre cada una de estas configuraciones se pueden encontrar en la página de manual de git-config .
Pensándolo bien, al releer tu pregunta, creo que sabes todo esto. Creo que lo que realmente estás buscando no existe. ¿Qué tal una función bash algo como (no probado):
fuente
Con la ayuda de la respuesta de ceztko, escribí esta pequeña función auxiliar para hacerme la vida más fácil:
Empuja la rama actual al origen y también establece la rama de seguimiento remoto si aún no se ha configurado.
fuente