Introducció a Git Bisect
Git Bisect és una eina poderosa que permet als desenvolupadors trobar ràpidament el commit que va introduir un error en el codi. Utilitza un algorisme de cerca binària per identificar el commit problemàtic, reduint significativament el temps necessari per a la depuració.
Objectius d'aquest tema:
- Entendre què és Git Bisect i per què és útil.
- Aprendre a utilitzar Git Bisect per trobar commits problemàtics.
- Practicar amb exemples pràctics i exercicis.
Què és Git Bisect?
Git Bisect és una eina que ajuda a trobar el commit exacte que va introduir un error en el codi. Funciona mitjançant una cerca binària, dividint el rang de commits en dues meitats i preguntant si l'error és present en la meitat superior o inferior. Aquest procés es repeteix fins a trobar el commit problemàtic.
Avantatges de Git Bisect:
- Eficiència: Redueix el nombre de commits que cal revisar manualment.
- Precisió: Identifica exactament el commit que va introduir l'error.
- Automatització: Pot ser utilitzat amb scripts per automatitzar la cerca d'errors.
Com Utilitzar Git Bisect
Passos Bàsics
-
Iniciar Git Bisect:
git bisect start
-
Marcar el commit actual com dolent:
git bisect bad
-
Marcar un commit conegut com a bo:
git bisect good <commit_id>
-
Git Bisect seleccionarà un commit intermediari per provar. Compila i prova el codi per veure si l'error està present.
-
Marcar el commit com a bo o dolent:
git bisect good
o
git bisect bad
-
Repetir els passos 4 i 5 fins que Git Bisect identifiqui el commit problemàtic.
-
Finalitzar Git Bisect:
git bisect reset
Exemple Pràctic
Suposem que tenim un projecte on l'error es va introduir en algun moment entre el commit abc123
(bo) i el commit xyz789
(dolent).
-
Iniciar Git Bisect:
git bisect start
-
Marcar el commit dolent:
git bisect bad xyz789
-
Marcar el commit bo:
git bisect good abc123
-
Git Bisect seleccionarà un commit intermediari. Suposem que selecciona
def456
. Prova el codi en aquest commit. -
Si el codi funciona bé:
git bisect good
-
Si el codi té l'error:
git bisect bad
-
Repetir fins que Git Bisect identifiqui el commit problemàtic.
-
Finalitzar Git Bisect:
git bisect reset
Exercici Pràctic
Exercici 1: Utilitzar Git Bisect
-
Clona el següent repositori:
git clone https://github.com/exemple/git-bisect-exercise.git cd git-bisect-exercise
-
Inicia Git Bisect:
git bisect start
-
Marcar el commit actual com dolent:
git bisect bad
-
Marcar el commit
abc123
com a bo:git bisect good abc123
-
Segueix les instruccions de Git Bisect per identificar el commit problemàtic.
-
Finalitza Git Bisect:
git bisect reset
Solució de l'Exercici
-
Inicia Git Bisect:
git bisect start
-
Marcar el commit actual com dolent:
git bisect bad
-
Marcar el commit
abc123
com a bo:git bisect good abc123
-
Prova el commit intermediari seleccionat per Git Bisect. Suposem que selecciona
def456
. -
Si el commit
def456
és bo:git bisect good
-
Si el commit
def456
és dolent:git bisect bad
-
Repetir fins que Git Bisect identifiqui el commit problemàtic.
-
Finalitza Git Bisect:
git bisect reset
Conclusió
Git Bisect és una eina essencial per a qualsevol desenvolupador que treballi amb Git. La seva capacitat per identificar ràpidament el commit que va introduir un error pot estalviar molt de temps i esforç en la depuració. Practicar amb Git Bisect en projectes reals ajudarà a dominar aquesta eina i millorarà significativament el flux de treball de depuració.
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ó