2012-03-27 53 views

回答

2

git ls-files是一个管道命令,许多这些命令都是“隐藏”的,并且是正确的。随着时间的推移,许多已添加到bash完成,但许多仍然“隐藏”

+0

好的。但是,你能给我一个链接到一些“隐藏的”git命令列表吗?我想检查一下。 – Adobe 2012-03-27 07:24:39

+2

@Adobe您可以通过运行'git help -a'来查看列表。您还可以通过将以下内容添加到'〜/ .bash_completion'文件来覆盖tab-completion来显示所有内容:'_completion_loader git; __git_compute_porcelain_commands(){__git_compute_all_commands; __git_porcelain_commands = $ __ git_all_commands; }' – dlitz 2013-09-24 13:00:11

+0

这个答案没有回答问题 - 'git'的'其他'命令在哪里?'。那么为什么它被标记为正确答案? – fnl 2017-07-14 08:55:26

0

在默认安装中,Tab完成仅列出出现在/bin/usr/bin等等中的命令的名称。没有文件/usr/bin/git ls-files

ls-files是一个子命令,你将不得不教你的shell。假设你正在使用bash,你可以运行help complete来查看你可以在你的.bashrc中输入什么命令。

如果你的发行提供的是bash完成包,你可以安装它节省了大量的时间:

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

但作为manojlds指出,这不会对不太常用的Git命令工作如ls-files,因为bash完成隐藏了你的这些信息。你将不得不编辑/etc/bash_completion.d/git来改变这一点。

+0

我很确定OP有bash完成安装,它仍然没有好处。 – 2015-03-12 00:34:40

4

看看你的~/.git-completion.sh__git_list_porcelain_commands()函数。那里列出了git支持但不会制表完成的命令。大多数这些命令都是所谓的“管道”命令,包括ls-files。您可以通过评论相应的行来轻松地制作它们。像这样:

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