Git Branch Bash变量快捷方式

时间:2013-08-12 22:13:40

标签: git bash unix

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

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

此外,echo $branch不打印分支名称,因为git symbolic-ref --short -q HEAD会。

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

git push origin $branch

1 个答案:

答案 0 :(得分:3)

您所在的分支取决于您所在的目录。如果您有两个git工作树,~/a~/b,则输入cd ~/a可以将您置于一个分支上输入cd ~/b可以让你进入另一个分支。

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