J'ai vu beaucoup de questions sur les méthodes d'utilisation de git blame
mais je ne les comprends pas vraiment.
Je vois un bouton blame
au-dessus des fichiers de l'interface github. En cliquant dessus, il montre quelques diff avec les noms d'utilisateur sur la barre de gauche. Qu'est-ce que cela indique?
Pourquoi blâme-t-on réellement, à part GitHub?
De git-scm http://git-scm.com/docs/git-blame
Annote chaque ligne du fichier donné avec les informations de la révision qui a modifié la dernière ligne. Vous pouvez éventuellement commencer à annoter à partir de la révision donnée.
Lorsque spécifié une ou plusieurs fois, -L limite l'annotation aux lignes demandées.
Exemple:
[email protected]:~# git blame .htaccess
...
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300 4) allow from all
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300 5)
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300 6) <IfModule mod_rewrite.c>
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300 7) RewriteEngine On
...
Veuillez noter que git blame
ne montre pas l'historique des modifications par ligne au sens chronologique. Cela montre seulement qui était la dernière personne à avoir modifié une ligne dans un document jusqu'au dernier commit dans HEAD
.
Cela signifie que pour voir l'historique/le journal complet d'une ligne de document, vous devez exécuter un git blame path/to/file
pour chaque validation dans votre git log
.
La commande s’explique assez bien, c’est pour déterminer quel collègue a écrit la ligne spécifique ou a ruiné le projet afin que vous puissiez blâmer les :)
De GitHub https://help.github.com/articles/using-git-blame-trace-changes-in-a-file
La commande blame est une fonctionnalité de Git, conçue pour vous aider à déterminer qui a modifié un fichier.
En dépit de son nom à consonance négative, le blâme de Git est en fait assez inoffensif; sa fonction principale est de montrer qui a changé quelles lignes dans un fichier et pourquoi. Cela peut être un outil utile pour identifier les changements dans votre code.
Fondamentalement, git-blame
est utilisé pour montrer quelle révision et quel auteur a modifié en dernier lieu chaque ligne d'un fichier. C'est comme vérifier l'historique du développement d'un fichier.
La commande git blame
permet de savoir qui/quel commit est responsable des dernières modifications apportées à un fichier. L'auteur/commit de chaque ligne peut également être vu.
git blame filename
(responsable des modifications pour toutes les lignes du code)
git blame filename -L 0,10
(responsable des modifications de la ligne "0" à la ligne "10")
Il existe de nombreuses autres options pour blâmer, généralement elles pourraient aider.
La commande git blame
annote la ligne avec les informations de la révision qui a modifié la ligne en dernier lieu, et ... avec Git 2.22 (T2 2019), le fera plus rapide , en raison d’un correctif de performances autour de "_git blame
_", en particulier dans un historique linéaire (qui est la norme à optimiser).
Voir commit f892014 (02 avril 2019) par David Kastrup (fedelibre
) .
(Fusionnée par Junio C Hamano - gitster
- dans commit 4d8c4da , 25 avril 2019)
_
blame.c
_: ne laissez pas tomber les blobs d'origine aussi rapidementLorsqu'un blob parent a déjà des morceaux mis en file d'attente pour blâme, si vous le laissez tomber à la fin d'une étape de blâme, il sera immédiatement rechargé, ce qui doublera la quantité d'E/S et décompactera lors du traitement d'un historique linéaire.
Conserver ces blobs parents en mémoire semble être une optimisation raisonnable qui devrait entraîner une pression supplémentaire de la mémoire principalement lors du traitement des fusions d'anciennes branches.