Avoir l'tree masquer les files gitignored

Existe-t-il un moyen de ne pas afficher les files ignorés dans .gitignore ?

Tree prend en charge le drapeau -I .

 -I pattern Do not list those files that match the wild-card pattern. 

Par exemple,

 tree -I "$( tr '\n' '\|' < $( git config --get core.excludesfile ) )" /foo 

Pour plus de commodité, vous pourriez mettre cela dans une fonction:

 function gtree { git_ignore_file=$( git config --get core.excludesfile ) if [[ -f ${git_ignore_file} ]] ; then tree -I"$( tr '\n' '\|' < "${git_ignore_file}" )" "${@}" else tree "${@}" fi } 

git config --get core.excludesfile returnnera un file dans la priorité suivante: local (repo/.git/config) > global (~/.gitconfig) > system (default?) .

si vous voulez les exclure tous, vous pouvez utiliser le drapeau --get-all au lieu de --get . par exemple:

 tree -I "$( cat $( git config --get-all core.excludesfile ) 2>/dev/null | tr '\n' '\|' ) )" /bar