¿Por qué 'git ls-files' no se muestra al completar la pestaña?

Recientemente encontré el command

git ls-files 

y lo encuentro muy útil (verlo con la opción -h ). ¿Por qué no aparece si git y luego presiono Tab ?

Quiero decir, ¿dónde está la list de "otros" commands de git ?

git ls-files es un command de fontanería y muchos de estos commands están "ocultos" y con razón. Con el time, muchos se han agregado a la finalización del bash, pero muchos todavía están "ocultos".

Mire su ~/.git-completion.sh y la function __git_list_porcelain_commands() . Aquí se enumeran los commands que git admite pero que no completan las tabs. La mayoría de estos commands son los llamados commands de "plomería", incluidos ls-files . Puede hacer que completen las tabs fácilmente comentando la línea respectiva. Me gusta esto:

 #ls-files) : plumbing;; #ls-remote) : plumbing;; #ls-tree) : plumbing;; 

En una installation pnetworkingeterminada, la finalización de la pestaña solo muestra los nombres de los commands tal como aparecen en /bin , /usr/bin , etc. No hay files /usr/bin/git ls-files .

ls-files es un sub command que deberás enseñarle a tu caparazón. Asumiendo que está utilizando bash, puede ejecutar la help complete para ver qué commands puede poner en su .bashrc .

Si su distribución suministra el package bash-completion, puede instalarlo para ahorrar mucho time:

 apt-get install bash-completion # on Debian/Ubuntu/etc. yum install bash-completion # on Fedora/Red Hat/etc. 

Pero como señala Manojlds, esto no funcionará para los commands git less utilizados, como ls-files porque bash-completion los oculta. Tendría que editar /etc/bash_completion.d/git para cambiar eso.