我是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)
有谁知道如何解决这个问题?
我尝试了该线程中提到的所有内容,但当我双击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-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自己的别名,例如.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)需要阅读另一条评论才能通过该方法使其工作.
解决以下评论中的链接:
git子命令的问题git别名的更普遍的问题,在这种情况下并不接近最佳解决方案