Soy un poco nuevo en el control de versiones con GIT. Leí esto Guide y estoy siguiendo el enfoque básico que se muestra en el diagrama HERE. Aún así, tengo algunas dudas sobre cómo usar las ramas de git para separar el desarrollo de nuevas características del código existente.Cómo usar correctamente git y ramas
Aquí hay un ejemplo. Supongamos que, al inicio, mi repositorio contiene los siguientes dos ramas principales:
- rama principal (que contienen la versión de lanzamiento)
- Desarrollar Rama (que contiene nuevas correcciones o características para separarlos de características existentes del proyecto)
Cuando necesito desarrollar nuevas características o módulos, creo ramas desde Develop y comienzo los nuevos proyectos de código allí. Por ejemplo, creo tres ramas nuevas para agregar funciones relacionadas con Sun
, Star
y SuperNova
. Ahora, mi repositorio contiene cinco ramas: la rama
- Maestro: Release 1.0.0
- Desarrollar rama: Modificación después de la liberación 1.0.0
- rama NewModule_Sun: añadir Sol para proyectar (crear a partir Desarrollar rama)
- NewModule_Star rama: añadir la estrella para proyectar (crear a partir Desarrollar rama)
- rama NewModule_SuperNova: añadir SuperNova a Project (crear a partir Desarrollar rama)
Para la versión 1.0.1, deseo incluir los módulos Sun
y Star
, pero no SuperNova
. Por lo tanto, los combina con Desarrollar y luego se funden desarrolle con el lanzamiento:
- Combinar NewModule_Sun en Desarrollar
- Combinar NewModule_Star en Desarrollar
- Combinar convertirse en Maestro (versión 1.0.1)
La rama Desarrollar debe mantenerse de forma permanente, pero las ramas Sun
y Star
ya no son necesarias. Ellos se eliminan:
- Eliminar la rama NewModule_Sun
- Eliminar la rama NewModule_Star
después de estos cambios mi repositorio contiene los siguientes tres ramas:
- Maestro Branch: Release 1.0. 1
- Develop Branch: Modificación después de la versión 1.0.1
- Rama NewModule_SuperNova: Modificación después de la versión 1.0.0 (creado a partir Desarrollar cuando no se fusionó con las ramas de la estrella/Sun)
==
En primer lugar, estoy usando git ramas correctamente?
En segundo lugar, revisé el historial de la rama de desarrollo final, y parece que he perdido algo de información sobre el NewModules
. ¿Eso es normal? Y, ¿es posible transferir toda la información del historial a la rama Desarrollo?
Gracias!
Esto puede ayudar. http://stackoverflow.com/questions/2613903/does-deleting-a-branch-in-git-remove-it-from-the-history – codef0rmer