带有符号的Git分支标签出现在我的命令行上

带有符号的Git分支标签出现在我的命令行上,git,ubuntu,virtualbox,drush,Git,Ubuntu,Virtualbox,Drush,我最近在ubuntu环境中安装了各种程序(homestead、vagrant、virtualbox)。其中一个程序导致我的命令行开始显示git的当前分支以及与git状态相关的神秘符号。它们看起来像这样: vagrant@homestead ~/Code/myapp (staging *<) $ cd home 在本例中,我在“master”分支上,“=”表示git状态 虽然我认为它很简洁,但不幸的是,git也大大降低了我的命令行速度。因此,我想找出是什么导致了git的这一变化(它没有这样

我最近在ubuntu环境中安装了各种程序(homestead、vagrant、virtualbox)。其中一个程序导致我的命令行开始显示git的当前分支以及与git状态相关的神秘符号。它们看起来像这样:

vagrant@homestead ~/Code/myapp (staging *<) $ cd home
在本例中,我在“master”分支上,“=”表示git状态

虽然我认为它很简洁,但不幸的是,git也大大降低了我的命令行速度。因此,我想找出是什么导致了git的这一变化(它没有这样做),并尝试撤销这些特性。我知道git是速度放缓的原因,因为在我没有git的应用程序中,一切都很顺利。我还运行了“top”,注意到git是我的系统挂起时唯一运行的东西,占用了33%到50%的某些资源

我认为更新到一个更新版本的git会有所帮助,但它没有做任何改变。目前我正在运行git版本2.7.1


以下程序之一可能与此有关:drush、ruby或compass。不幸的是,我无法确定哪一个程序可能以这种方式影响了git,而且可能是一个完全不同的程序,我记不起安装了它

检查您的
$PS1
$PROMPT\u命令
变量:它可能指一个昂贵的PS1函数,用于计算您所处的git回购的状态。
例如,请参见“”(适用于基于Windows Linux的shell,但同样适用于Linux)

检查export PS1=“$”(仅用于测试)是否加快了速度:这至少会确认问题

报告补充说:

这个问题似乎与git存储库的大小成正比,因为我创建了一个新目录,其中只有一个文件,而git在各个方面的工作速度都非常快

我发现由于此变量,这些git符号/分支标签出现在命令行:
PROMPT\u command
但我仍在尝试跟踪生成它的文件。
当我在命令行上运行此命令时,它使一切再次以光速运行:
export PROMPT\u command=“echo-n[$(日期+%k:%m:%S)]”

您有基于文件夹启用/禁用提示的脚本,以避免某些文件夹具有大文件和性能成本。
请参阅项目“”和:


检查您的
$PS1
$PROMPT\u命令
变量:它可能指一个昂贵的PS1函数,用于计算您所处的git回购的状态。
例如,请参见“”(适用于基于Windows Linux的shell,但同样适用于Linux)

检查export PS1=“$”(仅用于测试)是否加快了速度:这至少会确认问题

报告补充说:

这个问题似乎与git存储库的大小成正比,因为我创建了一个新目录,其中只有一个文件,而git在各个方面的工作速度都非常快

由于以下变量,我发现这些git符号/分支标签出现在我的命令行上:
PROMPT\u command
,但我仍在尝试跟踪生成它的文件。
当我在命令行上运行此命令时,它使一切再次以光速运行:
export PROMPT\u command=“echo-n[$(日期+%k:%m:%S)]”

您有基于文件夹启用/禁用提示的脚本,以避免某些文件夹具有大文件和性能成本。
请参阅项目“”和:

安装“drush”导致命令行发生更改。您将注意到“drush”安装完成后,它将提到它在.bashrc文件中添加了一些行,包括以下行:

# Include Drush prompt customizations.
if [ -f "/home/vagrant/.drush/drush.prompt.sh" ] ; then
  source /home/vagrant/.drush/drush.prompt.sh
fi
如果打开它引用的文件(/home/vagrant/.drush/drush.prompt.sh),您将看到prompt_命令和PS1都在这里被修改

与其完全删除或覆盖drush.prompt.sh,不如对其进行修改,以免丢失drush命令行自定义。但是,要完全覆盖它,可以在.bashrc文件中添加如下内容。位于~目录中的.bashrc文件将仅修改您的配置文件。下面是一个示例,其中显示了一些不错的信息和运行速度更快的git状态:

TZ='America/Chicago'; export TZ
export PROMPT_COMMAND="echo -n [$(date +%r)]"; 
export PS1='\[\e]0;\w\a\] \[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\] $((git symbolic-ref -q HEAD || git rev-parse -q --short $
您可能不需要调整这条线,也可以相应地进行调整

还有一个不错的选择:

function mycp {
    EXITSTATUS="$?"
    YELLOW="$(tput setaf 3)"
    RED="\[\033[0;31m\]"
    GREEN="\[\e[0;32m\]"
    BLUE="\[\e[34m\]"
    OFF="\[\033[m\]"
    HOST="\h"
    USER="\u"
    DIR="\w"
    NEWLINE="\n"
    DATE="\d"
    TIME="\T"
    BRANCH="`git branch 2> /dev/null | grep -e ^* | sed -E  s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /`"

    PROMPT="\[\033]0;${USER}@${HOST}: \w\007\n${YELLOW}${TIME} ${DATE} ${GREEN}${USER}@${HOST} ${RED}${BRANCH}"

    if [ "${EXITSTATUS}" -eq 0 ]
    then
        PS1="${PROMPT} ${BLUE}[${GREEN}${EXITSTATUS}${BLUE}]${OFF}\n${GREEN}\w \$${OFF}   "
    else
        PS1="${PROMPT} ${BLUE}[${GREEN}${EXITSTATUS}${BLUE}]${OFF}\n${GREEN}\w \$${OFF}   "
    fi
}
PROMPT_COMMAND=mycp
安装“drush”导致命令行发生更改。您会注意到,“drush”安装完成后,它会提到它在.bashrc文件中添加了几行内容,包括以下内容:

# Include Drush prompt customizations.
if [ -f "/home/vagrant/.drush/drush.prompt.sh" ] ; then
  source /home/vagrant/.drush/drush.prompt.sh
fi
如果打开它引用的文件(/home/vagrant/.drush/drush.prompt.sh),您将看到prompt_命令和PS1都在这里被修改

与其完全删除或覆盖drush.prompt.sh,不如对其进行修改,以免丢失drush命令行自定义。但是,要完全覆盖它,可以在.bashrc文件中添加如下内容。位于~目录中的.bashrc文件将仅修改您的配置文件。下面是一个示例,其中显示了一些不错的信息和运行速度更快的git状态:

TZ='America/Chicago'; export TZ
export PROMPT_COMMAND="echo -n [$(date +%r)]"; 
export PS1='\[\e]0;\w\a\] \[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\] $((git symbolic-ref -q HEAD || git rev-parse -q --short $
您可能不需要调整这条线,也可以相应地进行调整

还有一个不错的选择:

function mycp {
    EXITSTATUS="$?"
    YELLOW="$(tput setaf 3)"
    RED="\[\033[0;31m\]"
    GREEN="\[\e[0;32m\]"
    BLUE="\[\e[34m\]"
    OFF="\[\033[m\]"
    HOST="\h"
    USER="\u"
    DIR="\w"
    NEWLINE="\n"
    DATE="\d"
    TIME="\T"
    BRANCH="`git branch 2> /dev/null | grep -e ^* | sed -E  s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /`"

    PROMPT="\[\033]0;${USER}@${HOST}: \w\007\n${YELLOW}${TIME} ${DATE} ${GREEN}${USER}@${HOST} ${RED}${BRANCH}"

    if [ "${EXITSTATUS}" -eq 0 ]
    then
        PS1="${PROMPT} ${BLUE}[${GREEN}${EXITSTATUS}${BLUE}]${OFF}\n${GREEN}\w \$${OFF}   "
    else
        PS1="${PROMPT} ${BLUE}[${GREEN}${EXITSTATUS}${BLUE}]${OFF}\n${GREEN}\w \$${OFF}   "
    fi
}
PROMPT_COMMAND=mycp

这些都与问题无关。我怀疑您为shell定制/安装了一个配置文件,
bash/zsh
。它是从那里来的。在shell提示符中检查
git
插件。@Babar如何在shell提示符中检查git插件?这些都与问题无关。我怀疑您为shell定制/安装了一个配置文件,
bash/zsh
。它是从那里来的。在shell提示符中检查
git
插件。@Babar如何在shell提示符中检查git插件?完全正确。我只想补充一点,您要删除的部分是
\uuu git\u ps1
函数调用-很可能是