【问题标题】:Git Branch Bash Variable ShortcutGit 分支 Bash 变量快捷方式
【发布时间】:2013-08-14 09:18:23
【问题描述】:

我正在尝试创建一个 bash 变量,我可以用它来引用我在 Git 中的当前分支:类似于 $branch。

在我的bash_profile 中添加:branch=$(git symbolic-ref --short -q HEAD) 时,当我启动一个新终端时,我不断得到:fatal: Not a git repository (or any of the parent directories): .git

此外,echo $branch 不会像 git symbolic-ref --short -q HEAD 那样打印出分支名称。

我希望能够使用它而不是打印出分支名称(我的提示中已经有了),而是执行以下操作:

git push origin $branch

【问题讨论】:

  • 您不想使用alias 以便稍后调用吗?

标签: git bash unix


【解决方案1】:

你在哪个分支取决于你在哪个目录。如果你有两个git工作树,~/a~/b,那么输入cd ~/a可以把你放在一个分支上,输入cd ~/b可以把你在另一个分支。

因此,尝试在您的 .bash_profile 中设置 $branch 是行不通的。每次更改工作树时,以及在任何可以更改当前工作树分支的命令之后,都需要更新 $branch

最简单的做法就是设置一个变量。相反,请创建一个别名:

alias branch='git symbolic-ref --short -q HEAD 2>/dev/null'

然后像这样使用它:

git push origin $(branch)

如果你是老派,也可以这样:

git push origin `branch`

如果你真的想设置环境变量,最简单的解决方案是每次打印提示时设置它:

_prompt_command () {
    export branch=$(git symbolic-ref --short -q HEAD 2>/dev/null)
}
export PROMPT_COMMAND=_prompt_command

注意:您应该检查您的.bash_profile.bashrc,看看您是否已经设置了PROMPT_COMMAND。如果是这样,只需将 branch 设置为您已经作为提示命令运行的任何函数。

【讨论】:

    猜你喜欢
    • 2020-08-11
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2017-08-08
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    相关资源
    最近更新 更多