将“cd”命令键入Linux Git目录时会发生什么?

时间:2015-11-04 03:53:30

标签: linux git shell

我有一个带有CentOS系统的VPS。系统在正常时间内具有高负载。

我有一个非常大的Git目录(接近800 MB)。当我在目录中键入命令cd时,shell需要很长时间才能响应。

当我向Git目录输入cd时会发生什么?我该怎么做才能优化输入时间?

在此处添加我的Bash个人资料:

这是我的.bash_profile文件:

function parse_git_dirty {
    [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}

function parse_git_branch {
    git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h:\w\[\e[1;36m\]$(parse_git_branch)\[\e[0m\]$ '

1 个答案:

答案 0 :(得分:4)

检查你是否有一个可能需要花费太多时间才能显示的git PS1提示(因为git status in a large repo can be costly

例如

See this gist,这有助于在执行 Ctrl + C 时禁用提示:

(摘录)

    local this_git_status=""
    if [ -z "${_skip_git_ps1}" ]; then
        this_git_status=$(__git_ps1 "(%s)")
        case $? in
            0 ) : ;;
            130 ) git_ps1_disable;; # If we break that last command because it's too slow, stop trying it
        esac
    fi
    export PS1=": \u@\h \w${this_git_status}; "