現在のディレクトリに.gitフォルダがある場合は、GITを表示するように求められますか?

現在のディレクトリに.gitフォルダがある場合は、GITを表示するように求められますか?

現在のディレクトリが現在のディレクトリにあるときにGITを表示するように求められますか?あり/含むフォルダ.git?これを行う方法はありますか?私の現在のプロンプトは次のように定義されています。

export PS1="[\u@\h] \w $ "

したがって、私のプロンプトは次のようになります。

[user@computer] ~/workspace  $

私はそれが次のように動的に見えるようにしたいです。

[user@computer] ~/workspace GIT $

答え1

__git_ps1最も標準的な方法はgitで直接使用することです。 Ubuntuでは、次のパスで取得できます。

source /usr/lib/git-core/git-sh-prompt
## source /etc/bash_completion.d/git-prompt
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w $(__git_ps1 "(%s)")\$ '

$(__git_ps1 "(%s)")リポジトリの現在の状態(現在のブランチ、進行中のリベース、マージなど)を通知する追加されたセクションを確認できます。

Ubuntuのファイルはgitパッケージとして提供されます。

$ dpkg-query -S /usr/lib/git-core/git-sh-prompt
git: /usr/lib/git-core/git-sh-prompt

Fedoraの場合git-core(パスが少し異なります):

rpm -qf /usr/share/git-core/contrib/completion/git-prompt.sh
git-core-2.5.5-1.fc23.x86_64

ヒントは以下から送信されます。

[user@computer] ~/workspace $ 

到着

[user@computer] ~/workspace (master)$ 

答え2

次の方が便利です。ここに.gitフォルダはありますか?または私の親ディレクトリの1つに

in_git () { 
    local dir=$PWD
    until [[ $dir == / ]]; do 
        [[ -d "$dir/.git" ]] && return 0
        dir=$(dirname "$dir")
    done
    return 1
}                                             

だからあなたのヒントは

PS1='[\u@\h] \w $(in_git && echo "GIT ")\$ '                                 

リポジトリのサブディレクトリにある場合は、GITインジケータが表示されます。

答え3

全ての回答ありがとうございます!私はこれを私の.bash_profile(Macの場合)に入れました。

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

答え4

あなたはインストールすることができますhttps://github.com/nojhan/liquidprompt見せる 偏差± どこ ±gitを意味します開発者現在使用中のgitブランチです。

関連情報