天道酬勤,学无止境

需要帮助加载 git-completion.bash 文件(Need help loading a git-completion.bash file)

问题

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

line 1: syntax error near unexpected token `newline'
-bash: git-completion.bash: line 1: `<!DOCTYPE html>'

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

回答1

您不小心从 GitHub (https://github.com/git/git/blob/master/contrib/completion/git-completion.bash) 保存了文件的 HTML 表示,而不是文件本身。 您应该保存原始文件 - https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash 。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 自制软件的git不使用补全(Homebrew’s `git` not using completion)
    问题 当使用OSX的git时,修改文件后,我可以简单地执行git commit <tab> ,这将自动将文件名补全为修改后的文件名。 但是,如果我从自制软件安装了较新版本的git并使用了该功能,则该功能将不再起作用(这意味着我按<tab> ,它只是“询问”我要在其上执行的文件,甚至包括那些没有任何变化)。 谁能阐明为什么以及如何解决这个问题? 我更喜欢使用自制的git,因为它是最新的。 我的外壳是zsh,并且安装bash-completion或zsh-completions无效(即使遵循homebrew的安装后说明)。 另外,在用自制软件安装git后,它说 Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions 所以我不能使用其中之一吗? 回答1 您正在寻找: brew install git bash-completion 如warpc的评论所述,您需要将以下内容添加到~/.bash_profile以使自制软件的bash补全工作: if [ -f $(brew --prefix)/etc/bash_completion ]; then . $
  • 如何获得bash补全以使用别名?(How do I get bash completion to work with aliases?)
    问题 例子: 我在Mac上使用bash v3.2.17,正在使用通过具有bash_completion变体的macports安装的git。 当我输入git checkout m<tab> 。 例如,我把它完成了master 。 但是,我对git checkout有一个别名, gco 。 当我键入gco m<tab> ,我没有自动完成分支名称。 理想情况下,我希望自动补全功能可以神奇地为我的所有别名工作。 是否可以? 失败的话,我想为每个别名手动自定义它。 那么,我该怎么办? 回答1 如以上评论所述, complete -o default -o nospace -F _git_checkout gco 将不再起作用。 但是,git-completion.bash中有一个__git_complete函数,可用于为别名设置完成,如下所示: __git_complete gco _git_checkout 回答2 我也遇到了这个问题,并提出了这个代码片段。 这将自动为您完成所有别名。 在声明所有(或任何)别名后运行它。 # wrap_alias takes three arguments: # $1: The name of the alias # $2: The command used in the alias # $3: The arguments in the alias all
  • Need help loading a git-completion.bash file
    I am new to git. Every time I try loading my git-completion.bash I got the following error message line 1: syntax error near unexpected token `newline' -bash: git-completion.bash: line 1: `<!DOCTYPE html>' Does anyone know how to solve this issue?
  • 如何配置git bash命令行完成?(How to configure git bash command line completion?)
    问题 例如在新的ubuntu机器上,我只运行了sudo apt-get git ,并且在输入git check[tab]时没有完成。 我没有在http://git-scm.com/docs上找到任何内容,但是这些天IIRC完成已包含在git包中,我只需要在bashrc中输入正确的内容即可。 回答1 在Linux上 在大多数发行版中,当您安装git时, /etc/bash_completion.d/ git完成脚本安装到/etc/bash_completion.d/ (或/usr/share/bash-completion/completions/git )中,而无需转到github。 您只需要使用它-将此行添加到您的.bashrc : source /etc/bash_completion.d/git # or source /usr/share/bash-completion/completions/git 在某些版本的Ubuntu中,默认情况下git autocomplete可能会被破坏,通过运行以下命令重新安装应该可以解决此问题: sudo apt-get install git-core bash-completion 在Mac上 您可以使用Homebrew或MacPorts安装gitcomplete。 自制酒 如果$BASH_VERSION > 4: brew
  • (Mac)-bash:__git_ps1:找不到命令((Mac) -bash: __git_ps1: command not found)
    问题 我正在尝试在终端中更改命令提示符。 我不断收到错误: -bash: __git_ps1: command not found 我已经尝试过,只需将其输入终端即可,即: __git_ps1 。 我也在.bash_profile尝试过 if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1='[\W]$(__git_ps1 "(%s)"): ' fi 您可能会看到/告诉您,是的,我确实安装了自动完成功能,并且效果很好! 我遇到了这个问题:“ PS1 env变量在Mac上不起作用”,它给出了代码 alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" 所以我将其添加到我的.bash_profile希望它会有所改变。 好吧,它做到了。 它只是更改了错误输出。 这是.bash_profile以及以下内容: alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" if [ -f ~/.git-completion.bash ]; then source ~/.git-completion
  • Git选项卡完成在Mac上的zsh中不起作用(Git tab completion not working in zsh on mac)
    问题 无论我尝试什么,我似乎都无法在我的zsh shell中使git tab / autocomplete工作。 我已经下载了bash-completion脚本和zsh-completion脚本,并按照说明进行了操作,但是我无法使其工作。 我已经重新安装了oh-my-zsh,但这似乎没有帮助或没有任何作用。 能使它工作的任何人都可以向我描述他们的设置,以便我可以模拟它以使其对我有用吗? 具体来说,到目前为止我所做的是: 切换为使用zsh作为我的默认shell 安装了oh-my-zsh 下载了https://github.com/git/git/blob/master/contrib/completion/git-completion.bash并将其保存在~/.completion/git/git-completion.sh 下载https://github.com/git/git/blob/master/contrib/completion/git-completion.zsh并将其保存在~/.zsh/_git 添加了zstyle ':completion:*:*:git:*' script ~/.completion/git/git-completion.sh 没有运气。 回答1 实际上,ZSH确实知道如何开箱即用完成,但是您需要打开完成功能本身(从您描述的步骤来看
  • Bash语法错误:文件意外结束(Bash syntax error: unexpected end of file)
    问题 原谅我,这是Bash中非常简单的脚本。 这是代码: #!/bin/bash # june 2011 if [ $# -lt 3 -o $# -gt 3 ]; then echo "Error... Usage: $0 host database username" exit 0 fi 运行sh file.sh之后: 语法错误:文件意外结束 回答1 我认为file.sh与CRLF行终止符一起使用。 跑步 dos2unix file.sh 然后问题将得到解决。 您可以使用以下命令在ubuntu中安装dos2unix: sudo apt-get install dos2unix 回答2 另一件事要检查(对我来说只是发生了): 用分号终止单行函数的主体 即,这个看起来很无辜的代码段将导致相同的错误: die () { test -n "$@" && echo "$@"; exit 1 } 使愚蠢的解析器高兴: die () { test -n "$@" && echo "$@"; exit 1; } 回答3 通过在if子句中使用错误的语法,我也刚收到此错误消息 else if (语法错误:文件意外结束) elif (正确的语法) 我通过注释掉调试它,直到它起作用 回答4 一个未关闭的if => fi子句也将引发此问题 提示:如果您的脚本很大,请使用陷阱进行调试... 例如 set
  • Windows上的Alter Git提示(Alter Git prompt on Windows)
    问题 我在Windows上使用Git,并通过GitExtensions与MSysGit(最新)安装,并在安装过程中选择了“请勿修改Windows提示符”。 现在,我希望能够修改默认提示(默认情况下,该提示仅显示分支名称,还可以显示自上次推送至origin (或者特别是origin/master ,以哪个为准)的时间和数量。更轻松)。 所以说代替: me@myPC /c/myRepo (master) 我会看到类似的内容: me@myPC /c/myRepo (master) 5 | 10:20 me@myPC /c/myRepo (master) 5 | 10:20 表示我最近一次在20分钟前10h推送,此后我进行了5次本地提交。 在您提到它之前,我知道有一些使用PowerShell进行操作的方法,但是我不想使用它。 我希望我们大家都知道并喜欢我的标准git bash。 我发现了一些解决方案,可以通过在.bashrc文件中修改PS1变量来解决,但是(例如,我可怜的Unix知识)似乎不起作用(例如,对此问题的公认答案)。 所以你有它。 这可能吗? 回答1 默认的git-completion脚本支持部分内容。 如果在/ etc / profile文件中设置GIT_PS1_SHOWUPSTREAM =“ verbose git”,则它将在上游分支之前的提交次数添加到提示中。
  • (Mac) -bash: __git_ps1: command not found
    I'm trying to change my command promt in terminal. I keep getting the error: -bash: __git_ps1: command not found I've tried it just by typing it into the terminal as is: __git_ps1. I've also tried it out in the .bash_profile if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1='[\W]$(__git_ps1 "(%s)"): ' fi As you might be able to see/tell, yes, I do have the auto-completion installed and it does work great! I came across this question: " PS1 env variable does not work on mac " which gives the code alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/
  • git completion in zsh: __git_func_wrap:3: : not found
    git-completion.zsh and git-completion.bash are installed automatically when running brew install git: ❯ ls -l /usr/local/share/zsh/site-functions/_git lrwxr-xr-x 56 quanta 7 Jul 18:54 /usr/local/share/zsh/site-functions/_git -> ../../../Cellar/git/2.27.0/share/zsh/site-functions/_git ❯ ls -l /usr/local/share/zsh/site-functions/git-completion.bash lrwxr-xr-x 71 quanta 7 Jul 18:54 /usr/local/share/zsh/site-functions/git-completion.bash -> ../../../Cellar/git/2.27.0/share/zsh/site-functions/git-completion.bash /usr/local/share/zsh/site-functions is included in fpath: ❯ echo $fpath /usr/local
  • 如何使用 zsh compinit 启用 git 文件选项卡完成?(How to enable git file tab completion with zsh compinit?)
    问题 我的 zsh 选项卡完成有问题:运行后: autoload -U compinit compinit 文件的 Git 选项卡完成不再起作用。 例如,如果我输入 git add my_f 来完成 my_file,则什么也不会发生。 zsh git 完成似乎只适用于 git 分支和标签。 没有 compinit 的东西,git 文件完成工作,但当然我错过了所有花哨的分支完成的东西。 那么......有没有办法在zsh中同时进行git文件完成和git分支完成? 这真的对我有很大帮助。 回答1 (我在这里添加答案主要是为了将其从未答复列表中删除。) 从评论中可以看出,它确实有效。 我相信整个 zsh 的情况最近也有显着改善: 提交 06f44c3cc5ca5eca638f300a518c65aa98d26d6d 日期:2010 年 9 月 6 日星期一 08:33:19 -0400 完成:使与 zsh 兼容修改 git-completion.bash 使其在使用 bashcompinit 时也能与 zsh 一起使用。 ... 所以,如果你碰巧遇到这个谷歌搜索,并且你的完成不起作用,请尝试升级你的 git-completion.bash(链接指向来自 git.git HEAD 的 blob)。 当前 git 版本是 1.7.3.2; 它应该进入下一个。 回答2 请注意,在 Git 2
  • 如何在git中别名命令?(How do I alias commands in git?)
    问题 我看了一个人的截屏视频 git st git ci 上班。 当我这样做时,我遇到一个错误,问我是否还有其他意思。 作为git newb,我需要知道您需要做什么才能完成此任务? 回答1 基本上,您只需要向~/.gitconfig添加行 [alias] st = status ci = commit -v 或者,您可以使用git config alias命令: $ git config --global alias.st status 在Unix上,如果别名有空格,请使用单引号: $ git config --global alias.ci 'commit -v' 在Windows上,如果别名包含空格或命令行参数,请使用双引号: c:\dev> git config --global alias.ci "commit -v" alias命令甚至接受函数作为参数。 看一下别名。 回答2 正如其他人所说,添加git别名的适当方法是通过编辑~/.gitconfig或使用git config --global alias.<alias> <git-command>在全局.gitconfig文件中git config --global alias.<alias> <git-command>命令 以下是~/.gitconfig文件的别名部分的副本: [alias] st = status
  • 如何告诉 Cygwin 依赖项是从源代码构建的?(How can I tell Cygwin that a dependency was built from source?)
    问题 我将 Git 与 Cygwin 一起使用(我更喜欢 Cygwin 而非 Mingw,而且我不喜欢 PoshGit)。 不幸的是,Cygwin 存储库上可用的 Git 版本有点旧(1.7.9-1)。 所以我从源代码构建了 git 1.8(顺便说一句,实际上并没有我想象的那么难,但我离题了)。 唯一的问题是 Cygwin 设置不会“意识到”已经安装了 Git。 如果我尝试安装一些依赖于 Git 的包(例如 Tig),Cygwin 安装程序会告诉我它需要安装 Git。 有什么办法可以解决这个问题吗? 我可以以某种方式通知 Git 已经安装,并且 Cygwin 安装程序应该尝试使用它来解决对 Git 包的任何依赖关系吗? 回答1 有同样的问题。 除了安装用于 git-completion 的包之外,还有另一种方法可以做到。 从https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash下载git-completion.bash文件,放到/etc/bash_completion.d/目录下,重命名文件到“git”并重新启动 Cygwin。 您可以在没有任何依赖项的情况下获得 git 完成(假设您已经安装了 bash-completion)。 缺点是您没有此文件的自动更新,但
  • Can't change Ruby Version using RVM
    I'm running Lion DP4 with Ruby 1.8.7 preinstalled. For my new project I need the latest Ruby version though. Therefore installed rvm and the latest Ruby. Somehow when I try to use the new version it doesn't give me any errors, but the change just doesn't take effect. ~martin$ rvm use ruby 1.9.2 --default Using /Users/martin/.rvm/gems/ruby-1.9.2-p180 ~martin$ which ruby /usr/bin/ruby My .bash_profile file looks like this: export PATH="/opt/local/bin" export PATH="/opt/local/sbin" export PATH="/usr/texbin:${PATH}" export PATH=$PATH:/Users/martin/bin export PATH=$PATH:/usr/local/mysql/bin source
  • 在 Zsh 中禁用远程分支的自动完成?(Disable auto-completion of remote branches in Zsh?)
    问题 这与在 Git Bash 中禁用远程分支的自动完成有关?。 有人知道如何用 zsh 做同样的事情吗? 回答1 zstyle :completion::complete:git-checkout:argument-rest:headrefs command "git for-each-ref --format='%(refname)' refs/heads 2>/dev/null" 解释: 输入git checkout <Control-x><h>调用_complete_help ,它会显示如果您在当前上下文中按下 TAB(而不是按下<Control-x><h> ),zsh 的完成系统将如何运作的内部结构。 由此可以看出 zsh 会调用__git_heads函数来完成 git 分支头的名称。 如果然后键入which __git_heads ,您可以看到这些分支头名称是通过以下方式获得的: _call_program headrefs git for-each-ref --format='"%(refname)"' refs/heads refs/remotes 2>/dev/null 幸运的是, _call_program是专门为允许用户更改默认行为而设计的。 所以上面的zstyle命令指示 zsh 使用替代的git for-each-ref ...调用而不是内置的调用
  • Git tab completion not working in zsh on mac
    No matter what I try and do I can't seem to make git tab/auto completion work in my zsh shell. I've downloaded the bash-completion script and the zsh-completion one and followed the instructions, but I can't make it work. I've reinstalled oh-my-zsh but that didn't seem to help or make any difference. Can anyone who's got it working describe to me their setup so I can try an emulate it to get it working for me? To be specific, what I've done so far is: Switched to using zsh as my default shell Installed oh-my-zsh Downloaded https://github.com/git/git/blob/master/contrib/completion/git
  • 安装yeoman时出错(Error installing yeoman)
    问题 在OSX机器上安装Yeoman会导致以下错误: paulh16$ npm install -g yo npm http GET https://registry.npmjs.org/yo npm http 304 https://registry.npmjs.org/yo npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/yo' npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/yo'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/usr/local/lib/node_modules/yo', npm ERR! fstream_type: 'Directory', npm ERR! fstream_path: '/usr/local/lib/node_modules/yo', npm ERR! fstream_class: 'DirWriter', npm ERR! fstream_stack: npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js
  • PS1 环境变量在 mac 上不起作用(PS1 env variable does not work on mac)
    问题 我有一个脚本(不是我自己写的),在我的命令提示符下显示了git branch / svn分支。 有谁知道为什么这在Mac上不起作用? 它在Linux中完美运行。 从https://github.com/xumingming/dotfiles/blob/master/.ps1: # Display ps1 with colorful pwd and git status # Acording to Jimmyxu .bashrc # Modified by Ranmocy # -- if type -P tput &>/dev/null && tput setaf 1 &>/dev/null; then color_prompt=yes else color_prompt= fi __repo () { branch=$(type __git_ps1 &>/dev/null && __git_ps1 | sed -e "s/^ (//" -e "s/)$//") if [ "$branch" != "" ]; then vcs=git else branch=$(type -P hg &>/dev/null && hg branch 2>/dev/null) if [ "$branch" != "" ]; then vcs=hg elif [ -e .bzr ]; then
  • 可以在zsh中使用Bash制表符完成脚本吗?(Can a Bash tab-completion script be used in zsh?)
    问题 我有一个用于Apache Hadoop的Bash制表符补全脚本。 通常,我将zsh用作日常外壳。 当我需要它时,它往往看上去很像bash,但是看起来它们之间的制表符完成系统根本不同。 有没有一种简单的方法可以“转换”现有的bash-tab-completion定义以使其在zsh中工作? 我不想为此花很多时间,但是如果简单的话,我会省下很多精力。 回答1 From this page (dated 2010/01/05): Zsh can handle bash completions functions. The latest development version of zsh has a function bashcompinit, that when run will allow zsh to read bash completion specifications and functions. This is documented in the zshcompsys man page. To use it all you need to do is run bashcompinit at any time after compinit. It will define complete and compgen functions corresponding to the
  • Git 提示和技巧:在命令提示符下显示分支不起作用并创建了 git branch 函数不起作用和许多其他的副作用(Git Tips and Tricks : Display Branch on Command Prompt not working and created side effects of git branch function not working and many others)
    问题 只是想增强我对 git 的了解并使用技巧和窍门, 我按照提示PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '建议更新了我的 .bashrc 文件,但令我惊讶的是现在我的 git branch 命令不起作用,即使我从 .bashrc 中删除它,但它对我不起作用。 此外,每次我使用命令提示符时都会得到-bash: __git_ps1: command not found any -bash: __git_ps1: command not found ? 更新:我现在想摆脱它,我怎样才能做到这一点? 回答1 您是否启用了 git bash-completion 功能? 您可能已经在系统上找到它们,只是未启用。 要确定它们是否打开,请键入git Space Tab -- 如果您获得文件列表,则没有完成,如果获得命令列表,则可以完成(并且您的提示应该有效)。 更新:从 .bashrc 中删除该行后,重新启动 shell 后,您遇到的问题应该会消失。 仅仅重新获取文件将无济于事,因为它不会取消设置提示变量(无论如何,该变量在您覆盖它之前确实有一个值)。 回答2 通过谷歌搜索“__git_ps1”,我找到了第一个结果: 在 git 发行版中已经有一个函数可以做到这一点。 如果您查看源代码,则有一个名为 contrib 的目录,其中包含一个 bash 完成文件