2011-03-24 10 views
355

Tengo una rama llamada desarrollar en mi repositorio local, y quiero asegurarme de que cuando la empuje al origen se fusione con el origen/maestro. Actualmente, cuando presiono, se agrega a una rama de desarrollo remoto.¿Cómo presiono una rama local de Git para dominar la rama en el control remoto?

¿Cómo puedo hacer esto?

+0

¿Hay alguna razón en particular que no desea combinar de forma local en 'origen controlado y luego empujar a que el control remoto? – bhamby

+0

Creo que @galador significa fusionarse localmente en 'maestro', pero es un punto válido. Si es lo suficientemente estable para la rama maestra del origen, entonces * seguramente * ¡es lo suficientemente estable para su rama principal! – Cascabel

+1

@Jefromi Sí, joder, error tipográfico. -_- – bhamby

Respuesta

606
$ git push origin develop:master 

o, más generalmente

$ git push <remote> <local branch name>:<remote branch to push into> 
+19

No haga "origen de git push: maestro" que pueda eliminar su rama existente o el control remoto –

+28

¡Verdadero @MangirdasSkripka! Simplemente use 'git push origin head: master' si no quiere especificar el nombre de la rama actual :) –

+15

Good Idea @ FrancescRosàs, aunque es HEAD (letras mayúsculas). – smoku

153

medida que las personas mencionadas en los comentarios es probable que no quieren hacer eso ... La respuesta de mipadi es absolutamente correcto si usted sabe lo que usted' re haciendo

diría:

git checkout master 
git pull    # to update the state to the latest remote master state 
git merge develop  # to bring changes to local master from your develop branch 
git push origin master # push current HEAD to remote master branch 

 

+13

Solo mencionar, hay algo de sentido en su solicitud, estoy usando ese caso para implementar (empujar) mi desarrollo a Heroku master –

+4

Una vez más, esta técnica es IMHO solo para usuarios avanzados de git. No es que sea demasiado difícil, solo requiere que las personas entiendan qué están haciendo y por qué funciona de la manera en que funciona. Todo el mundo es libre de usar git a su gusto, pero creo que seguir el enfoque que sugerí es mucho mejor para fines educativos, especialmente para los recién llegados. Limpiar "ramas de tema" es la manera de comenzar, puede optimizar su flujo de trabajo más adelante si es necesario. –

+1

En realidad es algo bastante común de hacer. La rama principal generalmente es su rama de implementación. Si dos equipos divergen intencionalmente de su despliegue, es probable que utilices una sucursal local escogida para aplicar parches río arriba.Ahora bien, podría argumentar que los cambios deberían ser empujados hacia arriba a una rama y luego fusionados a master, pero ciertamente no es extraño hacerlo de otra manera, IMO. – dgatwood

Cuestiones relacionadas