2012-03-27 9 views

risposta

2

git ls-files è un comando idraulico e molti di questi comandi sono "nascosti" e giustamente. Nel corso del tempo, molti sono stati aggiunti al completamento della bash, ma molti sono ancora "nascosti"

+0

Ok. Ma puoi darmi un link ad alcuni elenchi di comandi git "nascosti"? Mi piacerebbe dargli un'occhiata – Adobe

+2

@ Adobe È possibile visualizzare un elenco eseguendo 'git help -a'. Puoi anche eseguire l'override del completamento della tabulazione per mostrare tutto aggiungendo quanto segue al tuo file '~/.bash_completion':' _completion_loader git; __git_compute_porcelain_commands() {__git_compute_all_commands; __git_porcelain_commands = $ __ git_all_commands; } ' – dlitz

+0

Questa risposta non risponde alla domanda posta - 'dove sono gli" altri "comandi di' git'?'. Allora perché è contrassegnato come la risposta corretta? – fnl

0

In un'installazione predefinita, il completamento della scheda elenca solo i nomi dei comandi così come appaiono in /bin, /usr/bin, ecc. Nessun file /usr/bin/git ls-files.

ls-files è un comando secondario di cui dovrai insegnare la shell. Supponendo che stai usando bash, puoi eseguire help complete per vedere quali comandi puoi inserire nel tuo .bashrc.

Se la vostra distribuzione fornisce il pacchetto bash-completamento, è possibile installarlo a risparmiare un sacco di tempo:

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

Ma, come manojlds sottolinea, questo non funzionerà per i comandi meno comunemente usati git come ls-files perché bash-completamento nasconde quelli da voi. Dovresti modificare /etc/bash_completion.d/git per cambiarlo.

+0

Sono abbastanza sicuro che OP ha installato il bash-completamento e non è ancora valido. –

4

Guarda la tua ~/.git-completion.sh e la funzione __git_list_porcelain_commands(). I comandi supportati da git ma che non sono tab-complete sono elencati qui. La maggior parte di questi comandi sono i cosiddetti comandi "plumbing", tra cui ls-files. Puoi facilmente renderli tab-completato commentando la rispettiva linea. In questo modo:

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