标签: git-completion

需要帮助加载git-completion.bash文件

我是git的新手.每次我尝试加载我时都会 git-completion.bash收到以下错误消息

line 1: syntax error near unexpected token `newline'
-bash: git-completion.bash: line 1: `<!DOCTYPE html>'
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

git git-completion

6
推荐指数
1
解决办法
656
查看次数

git 自动完成不会提示分支名称

我尝试了该线程中提到的所有内容,但当我双击tab命令键时git checkout,我只得到以下建议

FETCH_HEAD HEAD ORIG_HEAD

而我期待的是分支名称。

还有其他建议可以让这个工作吗?

我在ubuutu 14.04

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty
Run Code Online (Sandbox Code Playgroud)

更新

全局 gitconfig 文件

[user]
        email = abc@zxc.com
        name = Abc Zxc
[credential]
        helper = cache --timeout=3600
[filter "lfs"]
        process = git-lfs filter-process
        required = true
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
[diff]
        tool = meld
[merge]
        tool = meld
[difftool]
        prompt = false
Run Code Online (Sandbox Code Playgroud)

git版本

kishor@kishor-ThinkCentre-E73:~$ git version
git …
Run Code Online (Sandbox Code Playgroud)

git bash git-completion

5
推荐指数
1
解决办法
1816
查看次数

git 自定义子命令的 bash 补全?

假设我有一个git-cc可执行文件PATH。如果git-cc支持--help,那么很容易提供足够的完成

complete -F _longopt git-cc
Run Code Online (Sandbox Code Playgroud)

这样就$ git-cc --<TAB>完成了(根据帮助输出)。但git cc --<TAB>不会完成(即使它运行良好)。更重要的是,如果我为自定义子命令创建 git 别名,例如cc-sensible-defaults = cc --opt1 ...,那也不起作用,在这种情况下,简单地删除空格(git-cc而不是git cc)不是一个选项。

该怎么办?我尝试过使用__git_complete [git-]cc _longopt,但各种组合都没有起到任何作用。它似乎是为了完成 bash 别名(如gl = git-log),而不是子命令。正如预期的那样, git/git-completion.bash中的介绍不是很有帮助,包含令人困惑的内容

# If you have a command that is not part of git, but you would still
# like completion, you can use __git_complete:
#
#   __git_complete gl git_log
#
# Or …
Run Code Online (Sandbox Code Playgroud)

git bash-completion git-completion

4
推荐指数
1
解决办法
589
查看次数

别名g ='git'并且bash完成仍然有效

对于git自己的别名,例如.alias g=git,你会在这里更容易找到答案.

对于git子命令别名,例如.alias gco = "git checkout",看这里.


git经常打字,所以我把它别名:

alias g='git'
Run Code Online (Sandbox Code Playgroud)

但是,现在我做不到:

g comtab

并完成呈现给我:

g commit

如何重新开始运行?


重复分化

这个平等的第一个元回答建议保持具体案例与一个更通用的问题的链接.我在此编辑中添加了更通用案例的链接.

断言的重复问题更通用 - 但主要是关于git子命令的别名,而不是git本身的别名.

这个问题是关于别名git本身的具体情况.

在标记的副本中,git-itself case仅在第4个显示的答案中回答,并在对第一个列出的答案的评论中回答.第二部分拼图(源/usr/share/bash-completion/completions/git)需要阅读另一条评论才能通过该方法使其工作.

解决以下评论中的链接:

  • @ ewcz的链接是标记的副本,已经解决了
  • Remy J的链接
    1. 这是问题(和回答)也是关于git子命令的问题
    2. 这是一个关于非git别名的更普遍的问题,在这种情况下并不接近最佳解决方案
    3. 这与@ ewcz的链接(已经解决)相同

git bash autocomplete git-completion

2
推荐指数
1
解决办法
485
查看次数