Cette question appelle des "numéros de ligne", si vous ne vous souciez pas des numéros de ligne dans la sortie, consultez cette question et sa réponse .
Fondamentalement, je ne veux pas voir le contenu modifié, juste les noms de fichiers et les numéros de ligne.
Réponses:
Remarque: si vous recherchez simplement les noms des fichiers modifiés ( sans les numéros de ligne des lignes qui ont été modifiées), c'est facile, cliquez sur ce lien pour une autre réponse ici .
Il n'y a pas d'option intégrée pour cela (et je ne pense pas que ce soit très utile non plus), mais il est possible de le faire dans git, à l'aide d'un script "diff externe".
Voici un assez merdique; ce sera à vous de fixer la sortie comme vous le souhaitez.
Pour plus de détails sur "diff externe", voir la description de
GIT_EXTERNAL_DIFF
la page de manuel de git (autour de la ligne 700, assez proche de la fin).la source
| grep -o '^[0-9]*'
vous donne juste des chiffres, en supposant que vous ne vous souciez pas du côté droit.--diff-filter=...
où la...
pièce correspond au type de changements que vous souhaitez voir:M
pour modifié,A
pour ajouté,D
pour supprimé et autres selon lagit diff
documentation.Si facile:
Allez-y et diff!
la source
git diff --name-only master..HEAD
Numéros de ligne comme en nombre de lignes modifiées ou les numéros de ligne réels contenant les modifications? Si vous voulez le nombre de lignes modifiées, utilisez
git diff --stat
. Cela vous donne un affichage comme celui-ci:Il n'y a pas d'option pour obtenir les numéros de ligne des modifications elles-mêmes.
la source
git diff master --compact-summary
La sortie est:
C'est exactement ce dont vous avez besoin. Même format que lorsque vous effectuez une validation ou que vous tirez de nouvelles validations à distance.
PS: C'est câblé que personne n'a répondu de cette façon.
la source
1) Mon préféré:
Ajoute l'état du fichier, par exemple:
2) Si vous voulez des statistiques, alors:
affichera quelque chose comme:
3) Enfin, si vous ne voulez vraiment que les noms de fichiers:
Montrera simplement:
la source
Affiche les noms de fichiers et le nombre / nombre de lignes qui ont changé dans chaque fichier entre maintenant et le commit spécifié:
la source
Je sais que c'est une vieille question mais sous Windows, cela filtre la sortie git dans les fichiers et les numéros de ligne modifiés:
(git diff -p --stat) | findstr "@@ --git"
Pour extraire les fichiers et les lignes modifiées, c'est un peu plus de travail:
for /f "tokens=3,4* delims=-+ " %f in ('^(git diff -p --stat .^) ^| findstr ^"@@ --git^"') do @echo %f
la source
La sortie la plus propre, c'est-à-dire les noms / chemins de fichiers uniquement, est fournie avec
HTH
la source
Sur
git version 2.17.1
, il n'y a pas d'indicateur intégré pour atteindre cet objectif.Voici un exemple de commande pour filtrer le nom de fichier et les numéros de ligne d'un diff unifié:
Par exemple, le diff unifié:
Aura pour résultat:
Pour faire correspondre la sortie des commandes dans les résultats de correspondance grep courants:
grep -Po '^diff --cc \K.*|^@@@( -[0-9]+,[0-9]+){2} \+\K[0-9]+(?=(,[0-9]+)? )
: Faire correspondre le nom de fichier dediff --cc <filename>
OU Faire correspondre le numéro de ligne de@@@ <from-file-range> <from-file-range> <to-file-range>
OU Faire correspondre le texte restant après@@@
.sed -e '0~3{s/ @@@[ ]\?//}'
: Supprimer@@@[ ]\?
de chaque 3ème ligne pour obtenir le contexte optionnel de 1 ligne avant++<<<<<<< HEAD
.sed '2~3 s/$/\n1/g'
: Ajoutez\n1
toutes les 3 lignes entre la 2e et la 3e ligne pour le numéro de colonne.sed "N;N;N;s/\n/:/g"
: Joignez toutes les 3 lignes avec a:
.la source
J'utilise
grep
comme solution naïve.un exemple de sortie:
Vous pouvez peut-être voir une sortie colorée. Il vous aide à lire facilement les sorties.
la source