【问题标题】:git add auto-complete filenamegit 添加自动完成文件名
【发布时间】:2015-08-03 14:01:43
【问题描述】:

我正在做一个 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&lt;tab&gt; 这样的补全并没有......

任何想法如何完成?

提前致谢!

【问题讨论】:

    标签: git zsh zshrc zsh-completion


    【解决方案1】:

    试试git add **/Base*&lt;tab&gt;(注意额外的*)。

    【讨论】:

    • 感谢您的回答!它可以工作,但包含所有带有“Base*”的文件。我希望 zsh 只完成可添加的文件。在这种情况下,它应该只完成 BaseFlavor.java
    【解决方案2】:

    我知道这不是问题的确切答案,但 Facebook 提供了一个非常方便的工具 - PathPicker - 您只需选择要添加的已修改文件。

    【讨论】:

      【解决方案3】:

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

      您不能使用git add **/filename*,但git add &lt;tab&gt; 只为您提供准备提交、未跟踪、合并冲突等的文件和路径..

      从 10.3.2020 开始编辑
      bash 脚本来源:https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash

      然后只需编辑您的.bashrc 如下

      if [ -f ~/pathto/.git-completion.bash ]; then
        . ~/pathto/.git-completion.bash
      fi  
      

      【讨论】:

      • 链接已损坏 :(
      • 嗨,莫什。很抱歉听到这个消息。我已经更新了答案。我希望它有所帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 2020-12-24
      • 1970-01-01
      • 2015-06-06
      • 2020-09-15
      • 2012-02-15
      • 1970-01-01
      相关资源
      最近更新 更多