Quand on cherche qui est le responsable du bug...
Git blame
La commande blame
permet d'obtenir la liste des lignes d'un fichier, annotées du commit et de l'auteur correspondant:
git blame README.md
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 1) # Cours git
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 2)
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 3) Projet d'initiation à **Git**
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 4) Ceci est un dépôt d'entrainement.
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 5)
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 6) Penser à exécuter `git log` pour voir l'historique du cours.
Exemple: vous trouvez un bug provoqué par la ligne 6 du fichier README.md
, vous pouvez faire afficher 3 lignes jusqu'à la ligne 4 pour voir quels commits ont potentiellement introduit le bug.
git blame -L 6,-3 README.md
[output]^ae388b9 (AymDev 2020-05-02 17:08:29 +0200 4) Ceci est un dépôt d'entrainement.
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 5)
[output]daaad193 (AymDev 2020-05-03 16:17:20 +0200 6) Penser à exécuter `git log` pour voir l'historique du cours.
Cette commande n'a pas pour but de trouver le collègue fautif mais de comprendre quand, comment et pourquoi ce bug a été introduit dans le projet.
À l'inverse, elle peut aussi permettre d'expliquer pourquoi un bug n'apparaît plus. Ou encore, de savoir qui a travaillé sur un fichier si on cherche de l'aide sur un sujet particulier.
Note: Plus tard, avec des branches, identifier le commit coupable permettra de savoir quelles branches contiennent le bug.
Outil: Sur le navigateur, Git History est un outil similaire qui permet également de voir l'historique d'un fichier ainsi que l'auteur des changements.