Empujar una sucursal local a GitHub

117

Tengo Git configurado para que cuando lo ejecute git push, envíe cambios a mi repositorio de GitHub. Hasta ahora solo he tenido una rama maestra.

Sin embargo, ahora he creado una sucursal local y me he comprometido con ella usando:

git checkout -b my_new_branch
git commit

Lo que me gustaría hacer ahora es enviar mis cambios en esta rama a GitHub. ¿Solo hago un git push?

Cuando lo configuré por primera vez, ejecuté:

git config push.default current
Noam
fuente
¿Cuál es exactamente su pregunta? Con esta push.defaultconfiguración, sí, git pushempujará la rama actual al origen, que es su repositorio de github, suponiendo que haya clonado desde allí. (Podrías especificar un control remoto diferente con branch.my_new_branch.remotesi quisieras). Entonces, ¿probaste esto y no funcionó?
Cascabel
1
Si desea que todas sus sucursales locales se envíen a la misma sucursal remota, sea explícito: git push origin HEAD: remote_branch
Ustaman Sangat

Respuestas:

221

Creo que estás buscando git push origin my_new_branch, asumiendo que tu control remoto de origen está configurado para llegar a tu repositorio de github.

Tom
fuente
git push <remote> <branch> según atlassian.com/git/tutorials/syncing/git-push
vikramvi
3
Si luego desea trabajar en esta rama con otras personas y, por lo tanto, hacer git pull, querrá configurar la información de seguimiento para su nueva rama: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia
9

Dependiendo de la configuración de git local, si tiene una rama comprobada que no es la que clonó o una que existe donde está tratando de presionar, git no presionará su sucursal local.

Este es el mensaje que proporciona:

advertencia: push.default no está configurado; su valor implícito ha cambiado en Git 2.0 de 'coincidencia' a 'simple'. Para silenciar este mensaje y mantener el comportamiento tradicional, use:

git config --global push.default coincidencia

Para silenciar este mensaje y adoptar el nuevo comportamiento ahora, use:

git config --global push.default simple

Cuando push.default se establece en 'matching', git enviará ramas locales a las ramas remotas que ya existen con el mismo nombre.

Desde Git 2.0, Git adopta de forma predeterminada el comportamiento 'simple' más conservador, que solo empuja la rama actual a la rama remota correspondiente que 'git pull' usa para actualizar la rama actual.

Consulte 'git help config' y busque 'push.default' para obtener más información. (el modo 'simple' se introdujo en Git 1.7.11. Use el modo similar 'actual' en lugar de 'simple' si a veces usa versiones anteriores de Git)

fatal: la rama actual MyLocalBranchno tiene rama ascendente. Para impulsar la rama actual y configurar el control remoto como ascendente, use

git push --set-upstream origin MyLocalBranch
xaxxon
fuente
0

Si es realmente vago, puede impulsar todas las sucursales locales simplemente usando

git push --all

--todas

Empuje todas las ramas (es decir, referencias debajo refs/heads/); no se puede utilizar con otros <refspec>.

serv-inc
fuente
-12

Si ha configurado su git para enviarlo a su repositorio principal de GitHub, independientemente de la rama en la que se encuentre, se enviará a su repositorio principal de GitHub.

Tenga en cuenta que, si muchos desarrolladores están trabajando en el mismo repositorio, podría generar un conflicto.

GiaNU
fuente
Ejecuté git config push.default current
Noam