"git diff --stat" et "git log --stat" affichent la sortie comme:
$ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56bf7a7e07
app/controllers/application_controller.rb | 34 +++-------------------------
1 files changed, 4 insertions(+), 30 deletions(-)
Mais ce qui s'est réellement passé dans ce commit, c'est que 4 lignes ont été modifiées et 26 lignes ont été supprimées, ce qui est différent de l'ajout de 4 lignes et de la suppression de 30.
Existe-t-il un moyen d'obtenir les LOC delta (26 dans ce cas)? Je ne me soucie pas vraiment de différencier les lignes ajoutées ou supprimées.
--word-diff
. Cela pourrait être plus utile.git diff --numstat
est ventilée par fichier. Pour voir le total ajouté / supprimé pour le diff, vous pouvez le diriger vers awk:git diff --numstat | awk '{ added += $1; removed += $2 } END { print "+" added " -" removed }'
git diff --shortstat
. D'après mon expérience, cela équivaut à accumuler la sortie degit diff --numstat
.--cached
Si vous voulez connaître les lignes ajoutées / modifiées / supprimées par un commit avec id
commit-id
, vous pouvez utiliserou
Si vous voulez connaître les lignes ajoutées / modifiées / supprimées par une plage de commits, vous pouvez utiliser
Si vous voulez connaître les lignes ajoutées / modifiées / supprimées par chaque commit, vous pouvez utiliser
la source
Si tous vos fichiers sont préparés pour la validation, pour voir la
--numstat
procédure comme ceci:la source
git utilise un diff "unifié", qui n'a que des lignes ajoutées et supprimées, comme format de diff. Vous devez faire quelque chose d'extérieur pour obtenir un diff qui affiche les informations d'ajout, de suppression et de modification.
https://wiki.postgresql.org/wiki/Working_with_Git#Context_diffs_with_Git donne des liens vers un script qui permet d'exécuter de vieux "diff" réguliers - et à partir de cela, vous pouvez générer une sortie de diff "context" . Les différences de contexte affichent les lignes ajoutées, supprimées et modifiées, ce qui devrait vous permettre d'obtenir les données souhaitées.
la source
Vous pouvez utiliser
diffstat
pour afficher le nombre de lignes modifiées. Par exemple:L'
-C
option est d'obtenir une sortie colorisée; l'-m
option est d'afficher le nombre de lignes modifiées. Exemple de sortie:Le décompte du nombre de lignes modifiées est approximatif, comme
man diffstat
dit:Une différence majeure entre
git diff --stat
etdiffstat
:diffstat
n'affiche pas les déplacements / renommages de fichiers (par exempleapp/{a.rb => b.rb}
).la source