git添加自动完成文件名

时间:2015-08-03 14:01:44

标签: git zsh zshrc zsh-completion

我正在开发一个git项目。 由于我有很多文件夹深度,我想改进我的自动完成以使用文件名而不仅仅是路径。

以下是一个例子:

$git status                                                                                                                        1 ↵  ✹master 
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   app/src/main/java/fr/pasteque/client/BaseFlavor.java
    modified:   app/src/main/java/fr/pasteque/client/widgets/RestaurantTicketsAdapter.java

no changes added to commit (use "git add" and/or "git commit -a")

我显然必须添加一个文件:

git add app/src/main/java/fr/pasteque/client/BaseFlavor.java

但我希望能够写下:git add BaseFlavor.java

git add **/BaseFlavor.java有效!

但完成时,如git add **/Base<tab>,并不是......

任何想法如何完成?

提前致谢!

3 个答案:

答案 0 :(得分:1)

尝试git add **/Base*<tab>(注意额外的*)。

答案 1 :(得分:0)

这是非常方便的bash脚本,可以帮助您:http://code-worrier.com/blog/autocomplete-git/

您无法使用git add **/filename*,但git add <tab>只提供准备提交,未跟踪,合并冲突等的文件和路径。

答案 2 :(得分:0)

我知道这不是问题的确切答案,但Facebook有一个非常方便的工具 - PathPicker - 你可以选择你想要添加的修改过的文件。