Mantenir un historial de commits net i organitzat és essencial per a la col·laboració efectiva i la gestió de projectes a llarg termini. Un historial net facilita la comprensió dels canvis realitzats, la depuració de problemes i la revisió de codi. En aquesta secció, explorarem diverses tècniques i millors pràctiques per mantenir un historial de commits net.
- Escrivint Bons Missatges de Commit
Un bon missatge de commit és clar, concís i informatiu. Ha de proporcionar suficient context perquè altres desenvolupadors entenguin el canvi sense haver de llegir el codi.
Estructura Recomanada:
- Línia de capçalera: Resum breu del canvi (màxim 50 caràcters).
- Línia en blanc: Separació entre la capçalera i el cos.
- Cos del missatge: Descripció detallada del canvi, si és necessari (màxim 72 caràcters per línia).
Exemple:
Corregit error de validació en el formulari de registre - Afegida validació per al camp de correu electrònic - Actualitzats els missatges d'error per a més claredat - Afegides proves unitàries per a la nova validació
- Utilitzant Commits Atòmics
Els commits atòmics són petits i enfocats a un sol canvi o millora. Això facilita la revisió de codi i la identificació de problemes.
Bones Pràctiques:
- Un commit per funcionalitat: Cada commit ha de representar un canvi lògic complet.
- Evitar commits massius: No incloure múltiples canvis no relacionats en un sol commit.
Exemple:
Afegida funcionalitat de restabliment de contrasenya - Creat formulari de restabliment de contrasenya - Afegida lògica de backend per gestionar les sol·licituds de restabliment - Enviat correu electrònic de restabliment amb enllaç únic
- Reescrivint l'Historial amb
git rebase
git rebase
El rebase permet reescriure l'historial de commits per fer-lo més net i lineal. Això és especialment útil per netejar commits de desenvolupament abans de fusionar-los a la branca principal.
Com Utilitzar git rebase
:
- Rebase interactiu: Permet editar, combinar o eliminar commits.
On n
és el nombre de commits que vols reescriure.
Exemple:
pick e5e6a1d Afegida funcionalitat de restabliment de contrasenya squash 3f4e2b1 Correcció d'error en la funcionalitat de restabliment
- Fusionant Commits amb
git squash
git squash
El squash
combina múltiples commits en un de sol, ideal per netejar l'historial abans de fusionar branques.
Com Utilitzar git squash
:
- Durant un rebase interactiu: Canvia
pick
persquash
en els commits que vols combinar.
- Durant una fusió: Utilitza l'opció
--squash
.
- Utilitzant
git cherry-pick
git cherry-pick
El cherry-pick
permet aplicar commits específics d'una branca a una altra, mantenint l'historial net i controlat.
Com Utilitzar git cherry-pick
:
Exemple:
- Evitant Commits Temporals
Evita fer commits temporals o de treball en progrés (WIP) a la branca principal. Utilitza branques de característiques o git stash
per emmagatzemar canvis temporals.
Com Utilitzar git stash
:
Per recuperar els canvis:
Exercici Pràctic
Objectiu:
Practicar la creació de commits atòmics i l'ús de git rebase
per mantenir un historial net.
Passos:
- Crea una nova branca:
- Fes diversos canvis petits i crea commits atòmics:
echo "Primera funcionalitat" > fitxer.txt git add fitxer.txt git commit -m "Afegida primera funcionalitat" echo "Segona funcionalitat" >> fitxer.txt git add fitxer.txt git commit -m "Afegida segona funcionalitat"
- Utilitza
git rebase
per combinar els commits:
- Canvia
pick
persquash
en el segon commit i guarda els canvis.
Solució:
Després de fer el rebase, l'historial hauria de mostrar un sol commit amb els canvis combinats.
Conclusió
Mantenir un historial de commits net és crucial per a la col·laboració i la gestió de projectes. Utilitzant bons missatges de commit, commits atòmics, i eines com git rebase
i git squash
, pots assegurar-te que l'historial del teu projecte sigui clar i fàcil de seguir. Practica aquestes tècniques regularment per millorar la qualitat del teu codi i la col·laboració amb el teu 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ó