¿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-tests
que 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 push
empujar 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~/.gitconfig
archivo 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/current
a 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_name
configurar 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 current
Otras opciones:
fuente
Yo uso ese alias en mi configuración .bashrc
En el comando
$gpb
toma 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_profile
tengoalias push="git push origin HEAD"
, así que cuando el tipo ipush
Sé 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 push
para 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 upstream
configurará el comportamiento de empuje para empujar solo la rama actual.La forma más simple: correr
git push -u origin feature/123-sandbox-tests
una 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 push
empujar las ramas rastreadas a sus controles remotos aguas arriba.También puede hacer esto en la configuración usted mismo configurando
branch.<branch name>.merge
el nombre de la rama remota (en su caso, el mismo que el nombre local) y, opcionalmente,branch.<branch name>.remote
el 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.default
configuració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