Как добавить ссылку на текущее рабочее дерево git в командной строке (bash)? - PullRequest
0 голосов
/ 24 октября 2018

Состояние дел

Я использую настраиваемое приглашение оболочки для отображения некоторой соответствующей информации о моем git-хранилище.

Вот выдержка из моего текущего файла .bash_profile (без ссылки на все цвета, чтобы упростить его).

GIT_PS1_SHOWDIRTYSTATE="yes"
GIT_PS1_SHOWSTASHSTATE="yes"
GIT_PS1_SHOWUNTRACKEDFILES="yes"
GIT_PS1_SHOWUPSTREAM="auto"

git_ps1_full_text ()
{
    local tmp1="$(__git_ps1)"
    local tmp2="${tmp1/\*/[unstaged]}"
    local tmp3="${tmp2/\+/[staged]}"
    local tmp4="${tmp3/\$/[stashed]}"
    local tmp5="${tmp4/\%/[untracked]}"
    local tmp6="${tmp5/<>/[diverged]}"
    local tmp7="${tmp6/>/[ahead]}"
    local tmp8="${tmp7/</[behind]}"
    local tmp9="${tmp8/=/}"
    printf -- "$tmp9"
}

PS1="\u@\h:\w "'$(git_ps1_full_text)'"\n\$ "

А вот что отображается, когда я нахожусь в моем локальном хранилище (как и ожидалось):

percelot@server:/home/users/percelot/git_repo/ (master [unstaged])
$ 

Фантастическое открытие: рабочие деревья

Несколько недель назад я обнаружил красоту рабочих деревьев.Поскольку мы управляем многими ветками и версиями одновременно, я постепенно пытаюсь использовать эту функцию.

Но я часто теряюсь в этих джунглях, которые я создаю в своем хранилище.

Итак, вот мой вопрос: есть ли способ показать текущее рабочее дерево в приглашении bash?

Каждый из моих рабочих деревьев помещен в git_repo/worktreesТаким образом, текущее рабочее дерево отображается в моем приглашении (в \ w), но я бы предпочел, чтобы оно отображалось со всеми данными git.

Я не думаю, что есть эквивалент GIT_PS1_... для текущего рабочего дерева.Но, может быть, есть хитрость?

...