¿Cómo ramificar y fusionar correctamente con Git?

He buscado en todo el rest de la web y he leído muchas instrucciones, pero simplemente no funciona y / o me comporto como esperaba.

Estaba trabajando en master y acababa de terminar de trabajar en la versión 0.1 de mi proyecto y quería alejarme de él para tener una instantánea de 0.1 fácilmente accesible. Actualmente estaba trabajando en master, así que corrí:

git branch 0.1 

Esto creó una twig en mi máquina muy bien, pero no pude encontrar la manera de empujarlo. Terminé corriendo:

 git config push.default current 

Ahora podría intercambiar entre proyectos usando:

 git checkout 

Y pude empujarlos muy bien y tenía ambas twigs en Github. Luego agregué un file de logging a 0.1 que simplemente decía "0.1 Snapshot test", confirmo y lo presioné bien. Luego decidí que quería ese logging en la twig principal, así que ejecuté:

 git merge 0.1 

Luego lo empujé. Esto ahora ha mantenido 0.1 en mi máquina, pero ha eliminado 0.1 de github. Editar: en realidad parece que todavía está en github, simplemente escondido cuando se mira la página maestra general.

Supongo que no estoy muy seguro de cómo debería estar usando git para seguir las versiones anteriores pero completadas. ¿En qué order debo ramificarme y fusionarme? ¿Esto era porque estaba trabajando en el Maestro que me confundí? Leí todo esto pero me confundió más: http://git-scm.com/book/es/Git-Branching-Basic-Branching-and-Merging

Tu pregunta solo está relacionada con empujar?

Puedes hacerlo:

 git push origin master git push origin 0.1 -- or all git push --all origin 

O incluso para todas las twigs:

Configurar git para tirar y empujar todas las twigs

Me gusta mucho el funcionamiento de Git. Por supuesto, puede hacer todos los pasos de bifurcación, fusión y labeldo de forma manual, pero el flujo de Git lo ilustra más claramente en mi opinión:

http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/

http://nvie.com/posts/a-successful-git-branching-model/

Cuando creas una nueva twig en git, el primer impulso debe hacer reference al origen:

 git push origin 0.1 

Espero tener el final correcto de esa pregunta.

Si push no funciona automáticamente como espera, siempre puede ser explícito:

 git push origin localBranchName:remoteBranchName 

Esto empuja a la sucursal local a la sucursal remota, y si no existe dicha sucursal en el server remoto, se creará.

Puede eliminar una twig remota con una syntax similar:

 git push origin :remoteBranchName