【问题标题】:Modified terminal prompt to show current Git branch, and now (master) is showing up in all directories修改终端提示以显示当前 Git 分支,现在 (master) 显示在所有目录中
【发布时间】:2013-05-20 19:04:13
【问题描述】:

我将 git 分支添加到我的终端,现在它不断告诉我我在所有目录中的分支 master 中。我想也许 git 只是安装在我的 ~ 目录中,所以我跑了

rm -rf .git

但它仍然出现。

这是我添加到我的 .bash_profile 中的内容

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

【问题讨论】:

  • 试试git rev-parse --show-toplevel,它应该会告诉你git root是什么。从那里,您可以决定是否要删除它。
  • 谢谢!我只是假设 .bash_profile 正在做一些奇怪的事情。没想到git安装得这么高。我可能很久以前就这样做了,哈哈
  • 你是不是故意使用自写函数? Git 已经为此提供了一个功能:PS1="\w$(__git_ps1) \$ ".

标签: git bash terminal


【解决方案1】:

这是我的设置方式:

#git info
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWSTASHSTATE=true 
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWUPSTREAM="git auto verbose"

#functions
function __git_ps1 (){
    local b="$(git symbolic-ref HEAD 2>/dev/null)";
    if [ -n "$b" ]; then
        printf " (%s)" "${b##refs/heads/}";
    fi
}

我的提示是:

PS1="[\j]\u@\h \w [\$?]\$(__git_ps1 \"(%s)\") "

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2018-03-04
    • 2017-06-20
    • 1970-01-01
    • 2021-10-23
    • 2011-11-09
    • 2017-07-31
    相关资源
    最近更新 更多