5
votes

Puis-je faire en sorte que "git status" affiche la taille des fichiers non suivis?

Il serait très pratique pour moi de voir la taille des fichiers non suivis. Et peut-être l'ancienne / nouvelle taille des fichiers modifiés.

Est-il possible de configurer git de manière à le montrer?

git

0 commentaires

3 Réponses :


4
votes

Non, vous ne pouvez pas faire en sorte que git status fasse cela.

Vous n'aurez peut-être pas besoin de faire cela, car vous peut écrire votre commande propre qui le fait à la place. Utilisez:

alias st='git status -uno;
  git -C "$(git rev-parse --show-cdup)" ls-files --others --exclude-standard -z | 
  xargs -0 ls -lR'

pour obtenir la liste des fichiers. Vous pouvez ensuite utiliser la commande de votre choix pour afficher des statistiques sur ces fichiers. Vous pouvez exécuter cette commande immédiatement après git status et demander à git status de supprimer sa propre liste avec --untracked-files = no . Par exemple:

git -C "$(git rev-parse --show-cdup)" ls-files --other --exclude-standard

Ici, j'ai également utilisé -z depuis la commande que j'utilise, xargs -0 ls -l , peut gérer cela, et a exprimé cela comme un alias shell plutôt qu'un alias Git .

Il y a un défaut ici. Alors que git status avec -uall énumérera tous les fichiers non suivis dans un répertoire, git ls-files --others ne le fera pas: il se comporte comme un git status par défaut, résumant ces fichiers en imprimant uniquement le nom du répertoire contenant. Le ls -l ici affichera les fichiers dans le répertoire; pour arrêter cela, utilisez plutôt ls -ld , mais bien sûr, vous ne verrez aucune taille de fichier.

(Pour obtenir des fichiers modifiés, utilisez git ls-files -m plutôt que --others.)


0 commentaires

3
votes
$ git status --porcelain | awk '{print $2}' | xargs ls -hs | sort -h
136 IMG_20160813_205506_AO_HDR.jpg
384 IMG_20160813_205539_AO_HDR.jpg
784 IMG_20160813_211139_HDR.jpg
5667898 IMG_20160814_143649_HDR.jpg

0 commentaires

0
votes

Essayez d'ajouter les codes suivants dans votre .bashrc ou .zshrc. Et puis utilisez gst pour obtenir une sortie au format joli avec des informations de taille de fichier

$ gst
287MB   video.mp4
53B     README.md
33B     222.txt
18B     333.txt
6B      111.txt

Sortie:

alias gst="git_status_size"
git_status_size(){
    git status --porcelain | awk '{print $2}' | xargs ls -hl | sort -r -h | awk '{print $5 "\t" $9}'
}


0 commentaires