2014-09-26 6 views

risposta

1

Aggiungere l'opzione ignora righe vuote. Prova

git diff --name-only -w --ignore-blank-lines 
+0

Non funziona. Hai ancora la stessa quantità di file di 'git diff' –

+0

Qual è la tua configurazione core.whitespace? Digitare "git config core.whitespace" –

+0

la mia configurazione è ** trailing-space, space-before-tab ** –

4

Per risolvere questo problema, ho scritto uno script per farlo. Spero sia utile per gli altri.

#!/usr/bin/env bash 

GIT_REPO_ROOT=`git rev-parse --show-toplevel` 
# cd ${GIT_REPO_ROOT} 

for f in `git diff --name-only`; 
do 
    MY_DIFF=`git diff -w ${GIT_REPO_ROOT}/${f}` 
    if [[ ! ${MY_DIFF} == "" ]]; 
    then 
     echo ${GIT_REPO_ROOT}/${f} 
    fi 
done 

Questo script riduce il risultato di 88 file ('git diff --name-only') a 8 file.

+0

Potrebbe essere necessario fare attenzione qui se i nomi dei file contengono spazi, poiché 'for' tipicamente scorre su ciascuno di essi parola delimitata da spazio in diff e non in ogni riga. Si potrebbe aggirare questo impostando 'IFS' su newline, o usando' git diff --name-only | mentre leggi -r f; do ... done' invece di 'for' – user2221343

+0

fa esattamente quello che volevo che facesse. Grazie mille – aaaaaa

Problemi correlati