El flux de treball Git Flow és una metodologia de gestió de branques que facilita l'organització i el desenvolupament de projectes de programari. Creat per Vincent Driessen, Git Flow defineix un conjunt de regles per a la creació, fusió i eliminació de branques, permetent un desenvolupament més estructurat i col·laboratiu.
Conceptes Clau de Git Flow
- Branca
main
: La branca principal que conté el codi en producció. - Branca
develop
: La branca de desenvolupament on s'integren les noves funcionalitats abans de ser fusionades amain
. - Branques de Funcionalitat (
feature
): Branques temporals creades per desenvolupar noves funcionalitats. - Branques de Releasing (
release
): Branques temporals per preparar una nova versió de producció. - Branques de Hotfix (
hotfix
): Branques temporals per corregir errors crítics en producció.
Flux de Treball
- Creació de la Branca
develop
develop
Després d'inicialitzar el repositori, es crea la branca develop
a partir de main
:
- Creació de Branques de Funcionalitat
Les branques de funcionalitat es creen a partir de develop
:
Desenvolupa la funcionalitat i fes commits regulars:
Quan la funcionalitat està completa, es fusiona de nou a develop
:
- Creació de Branques de Releasing
Quan es vol preparar una nova versió per a producció, es crea una branca de releasing a partir de develop
:
En aquesta branca es fan els ajustos finals, com la documentació i la correcció de bugs menors. Quan està llesta, es fusiona a main
i develop
:
git checkout main git merge release/v1.0 git tag -a v1.0 -m "Versió 1.0" git checkout develop git merge release/v1.0 git branch -d release/v1.0
- Creació de Branques de Hotfix
Si es detecta un error crític en producció, es crea una branca de hotfix a partir de main
:
Després de corregir l'error, es fusiona a main
i develop
:
git checkout main git merge hotfix/correccio-error git tag -a v1.0.1 -m "Correcció d'error crític" git checkout develop git merge hotfix/correccio-error git branch -d hotfix/correccio-error
Exemple Pràctic
Creació d'una Nova Funcionalitat
-
Crear la branca de funcionalitat:
git checkout -b feature/nova-funcionalitat develop
-
Desenvolupar la funcionalitat:
# Editar fitxers, afegir codi, etc. git add . git commit -m "Implementa nova funcionalitat"
-
Fusionar la funcionalitat a
develop
:git checkout develop git merge feature/nova-funcionalitat git branch -d feature/nova-funcionalitat
Preparació d'una Nova Versió
-
Crear la branca de releasing:
git checkout -b release/v1.0 develop
-
Fer ajustos finals:
# Editar fitxers, corregir bugs menors, etc. git add . git commit -m "Preparació per a la versió 1.0"
-
Fusionar a
main
idevelop
:git checkout main git merge release/v1.0 git tag -a v1.0 -m "Versió 1.0" git checkout develop git merge release/v1.0 git branch -d release/v1.0
Correcció d'un Error Crític
-
Crear la branca de hotfix:
git checkout -b hotfix/correccio-error main
-
Corregir l'error:
# Editar fitxers, corregir l'error, etc. git add . git commit -m "Correcció d'error crític"
-
Fusionar a
main
idevelop
:git checkout main git merge hotfix/correccio-error git tag -a v1.0.1 -m "Correcció d'error crític" git checkout develop git merge hotfix/correccio-error git branch -d hotfix/correccio-error
Exercici Pràctic
Objectiu
Implementar una nova funcionalitat i preparar una nova versió seguint el flux de treball Git Flow.
Passos
- Crear una branca de funcionalitat anomenada
feature/nova-funcionalitat
. - Desenvolupar la funcionalitat i fer un commit.
- Fusionar la funcionalitat a
develop
. - Crear una branca de releasing anomenada
release/v1.0
. - Fer ajustos finals i fer un commit.
- Fusionar la branca de releasing a
main
idevelop
.
Solució
# Pas 1: Crear una branca de funcionalitat git checkout -b feature/nova-funcionalitat develop # Pas 2: Desenvolupar la funcionalitat # Editar fitxers, afegir codi, etc. git add . git commit -m "Implementa nova funcionalitat" # Pas 3: Fusionar la funcionalitat a develop git checkout develop git merge feature/nova-funcionalitat git branch -d feature/nova-funcionalitat # Pas 4: Crear una branca de releasing git checkout -b release/v1.0 develop # Pas 5: Fer ajustos finals # Editar fitxers, corregir bugs menors, etc. git add . git commit -m "Preparació per a la versió 1.0" # Pas 6: Fusionar a main i develop git checkout main git merge release/v1.0 git tag -a v1.0 -m "Versió 1.0" git checkout develop git merge release/v1.0 git branch -d release/v1.0
Resum
El flux de treball Git Flow proporciona una estructura clara per gestionar el desenvolupament de programari amb Git. Utilitzant branques dedicades per a funcionalitats, releasing i hotfixes, es pot mantenir un codi net i organitzat, facilitant la col·laboració i la integració contínua. Practicar aquest flux de treball ajudarà a millorar la qualitat del codi i la productivitat de l'equip.
Dominar Git: De Principiant a Avançat
Mòdul 1: Introducció a Git
Mòdul 2: Operacions Bàsiques de Git
- Creant un Repositori
- Clonant un Repositori
- Flux de Treball Bàsic de Git
- Preparant i Cometent Canvis
- Veient l'Historial de Commits
Mòdul 3: Branques i Fusió
- Entenent les Branques
- Creant i Canviant de Branques
- Fusionant Branques
- Resolent Conflictes de Fusió
- Gestió de Branques
Mòdul 4: Treballant amb Repositoris Remots
- Entenent els Repositoris Remots
- Afegint un Repositori Remot
- Recuperant i Traient Canvis
- Empenyent Canvis
- Seguint Branques
Mòdul 5: Operacions Avançades de Git
Mòdul 6: Eines i Tècniques de Git
Mòdul 7: Estratègies de Col·laboració i Flux de Treball
- Forking i Pull Requests
- Revisions de Codi amb Git
- Flux de Treball Git Flow
- GitHub Flow
- Integració Contínua amb Git
Mòdul 8: Millors Pràctiques i Consells de Git
- Escrivint Bons Missatges de Commit
- Mantenint un Historial Netejat
- Ignorant Fitxers amb .gitignore
- Millors Pràctiques de Seguretat
- Consells de Rendiment
Mòdul 9: Resolució de Problemes i Depuració
- Problemes Comuns de Git
- Desfent Canvis
- Recuperant Commits Perduts
- Tractant amb Repositoris Corruptes
- Tècniques Avançades de Depuració