informatica:programacion:cursos:control_version_git_avanzado:branching
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:cursos:control_version_git_avanzado:branching [2023/06/03 16:25] – [El modelo de ramas de Git] tempwin | informatica:programacion:cursos:control_version_git_avanzado:branching [2023/06/03 16:41] (actual) – [Fusionando código: merge, rebase y cherry-pick] tempwin | ||
|---|---|---|---|
| Línea 136: | Línea 136: | ||
| El propósito de una rama es que cuando terminemos con ella, la volquemos a otra rama principal. En este proceso de volcado, los commits que estaban en la rama paralela formarán parte de la rama principal. | El propósito de una rama es que cuando terminemos con ella, la volquemos a otra rama principal. En este proceso de volcado, los commits que estaban en la rama paralela formarán parte de la rama principal. | ||
| - | |||
| - | <WRAP center round todo 60%> | ||
| - | Mostrar gráfico con la explicación de arriba. | ||
| - | </ | ||
| Aunque hay otras metodologías, | Aunque hay otras metodologías, | ||
| Línea 149: | Línea 145: | ||
| Objetivo: que una rama tenga los commits de otra. | Objetivo: que una rama tenga los commits de otra. | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Mostrar gráfico con la explicación de arriba. | + | |
| - | </ | + | |
| Tipos de merge: | Tipos de merge: | ||
| Línea 166: | Línea 160: | ||
| Con el merge **fast forward** el código no cambia, sencillamente git apunta la rama master a donde la rama secundaria, no se crea ningún commit. | Con el merge **fast forward** el código no cambia, sencillamente git apunta la rama master a donde la rama secundaria, no se crea ningún commit. | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Mostrar gráfico con la explicación de arriba. | + | |
| - | </ | + | |
| <WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
| Línea 176: | Línea 168: | ||
| Con el merge **a tres bandas**, en los casos en que tanto la rama principal y la secundaria avanzan por caminos distintos. | Con el merge **a tres bandas**, en los casos en que tanto la rama principal y la secundaria avanzan por caminos distintos. | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Mostrar gráfico con la explicación de arriba. | + | |
| - | </ | + | |
| La fusión **a tres bandas** crea un nuevo commit con el commit común a las dos ramas, el código de una rama y el código de la otra, por eso lo de "a 3 bandas" | La fusión **a tres bandas** crea un nuevo commit con el commit común a las dos ramas, el código de una rama y el código de la otra, por eso lo de "a 3 bandas" | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Mostrar gráfico con la explicación de arriba. | + | |
| - | </ | + | |
| Esta fusión puede ocasionar conflictos. Por ejemplo si estamos en la siguiente situación: | Esta fusión puede ocasionar conflictos. Por ejemplo si estamos en la siguiente situación: | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Mostrar gráfico con la explicación de arriba. | + | |
| - | </ | + | |
| Git no podrá decidir por nosotros y nos pedirá solucionar. | Git no podrá decidir por nosotros y nos pedirá solucionar. | ||
| Línea 236: | Línea 222: | ||
| A diferencia del **merge**, el **rebase** se aplica desde la rama origen. | A diferencia del **merge**, el **rebase** se aplica desde la rama origen. | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Añadir gráfico con resultado de rebase | + | |
| - | </ | + | |
| Después de un rebase tenemos que adelantar la rama principal ('' | Después de un rebase tenemos que adelantar la rama principal ('' | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| - | Si vamos a hacer un rebase, hay que pensar si hemos subido al repositorio remoto la rama secundaria. Si lo hemos subido, no podemos hacer **rebase** sino **merge**. **rebase** es una de las opciones de rescritura de la historia**. Si seguimos un modelo correcto de ramas, esto no debería ser un problema porque las ramas auxiliares nunca se suben al escritorio remoto pues las vamos borrando, solo son útiles en nuestro repositorio local mientras vamos desarrollando. | + | Si vamos a hacer un rebase, hay que pensar si hemos subido al repositorio remoto la rama secundaria. Si lo hemos subido, no podemos hacer **rebase** sino **merge**. **rebase** es una de las opciones de rescritura de la historia. Si seguimos un modelo correcto de ramas, esto no debería ser un problema porque las ramas auxiliares nunca se suben al escritorio remoto pues las vamos borrando, solo son útiles en nuestro repositorio local mientras vamos desarrollando. |
| </ | </ | ||
| Línea 265: | Línea 249: | ||
| * Confictos: lanzar siempre '' | * Confictos: lanzar siempre '' | ||
| - | <WRAP center round todo 60%> | + | {{ : |
| - | Añadir gráfico con ejemplo de cherry pick | + | |
| - | </ | + | |
| Al igual que el **merge**, **cherry-pick** se usa también desde la rama destino. | Al igual que el **merge**, **cherry-pick** se usa también desde la rama destino. | ||
| Línea 370: | Línea 352: | ||
| Cada empresa o programador puede tener su propio flujo. Hay una serie de métodos que comparte la comunidad. Uno de ellos es **git flow**, un modelo de // | Cada empresa o programador puede tener su propio flujo. Hay una serie de métodos que comparte la comunidad. Uno de ellos es **git flow**, un modelo de // | ||
| + | |||
| + | {{ : | ||
| Tuvo mucho éxito y se ha convertido en uno de los métodos más utilizados. | Tuvo mucho éxito y se ha convertido en uno de los métodos más utilizados. | ||
| + | |||
| ==== El modelo git flow ==== | ==== El modelo git flow ==== | ||
| Línea 418: | Línea 403: | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| - | Si no estuviésemos en esa rama, el comando tendría que ser '' | + | Si no estuviésemos en esa rama, el comando tendría que ser '' |
| </ | </ | ||
informatica/programacion/cursos/control_version_git_avanzado/branching.1685802352.txt.gz · Última modificación: por tempwin
