web-dev-qa-db-ja.com

Bashプロンプトで色付きのgitブランチを表示するにはどうすればよいですか?

Gitリポジトリで作業する場合、 このガイド を使用してgnome端末(Ubuntu 15.10)にブランチ名を表示しています。上記に基づいて、〜/ .bashrcファイルに以下が含まれるようになりました。

# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
#force_color_Prompt=yes 

...

# Add git branch if its present to PS1
parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_Prompt force_color_Prompt

その結果、私は今得る:

enter image description here

そのため、works。しかし、user @ Hostの色が削除されたのはなぜですか?また、ブランチ名に色を付けることも期待しています。このようになる前に:

enter image description here

更新:代わりにこのガイドを試しました:

https://coderwall.com/p/fasnya/add-git-branch-name-to-bash-Prompt

これを.bashrcに追加:

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\] $ "

そしてそれは動作します:

enter image description here

.bashrcにも注意してください(デフォルト):

# uncomment for a colored Prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the Prompt
#force_color_Prompt=yes

そのスニペットが正しい結果を提供し、他のバージョンが提供しない理由をまだ見つけていません。これに関する入力はありますか?

以下は、古いスニペットが有効になっている私の.bashrcのバージョンで、動作しません。

http://Pastebin.com/M8kjEiH

100
u123

このスニペット:

# Add git branch if its present to PS1

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi

デフォルトのプロンプト定義をreplaceすることを意味します。

if [ "$color_Prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

で終わる:

unset color_Prompt force_color_Prompt

投稿した.bashrc は、デフォルトのプロンプト定義とunset color_Prompt force_color_Prompt(行#64)の後に追加することを示しますafter

スニペットを使用してデフォルトのプロンプト定義をreplaceするか、~/.bashrcをそのままにして、デフォルトのプロンプト定義をunset color_Prompt force_color_Promptとともに#64行目にコメントします。


.bashrcの一部は次のようになります

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\] $(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
# THE SIX LINES BELOW are the default Prompt and the unset (which were in the original .bashrc)
#if [ "$color_Prompt" = yes ]; then
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_Prompt force_color_Prompt

screensot

113
kos

Ubuntu:ターミナルにブランチ名を表示する

〜/ .bashrcファイルにこれらの行を追加します

# Show git branch name
force_color_Prompt=yes
color_Prompt=yes
parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_Prompt force_color_Prompt

次のコマンドで.bashrcファイルをリロードします。

$ source ~/.bashrc
51
Sam

今のところ、私はこれに従いました https://Gist.github.com/eliotsykes/47516b877f5a4f7cd52f と、これまでのところ好きですが、さらにカスタマイズする予定です。

ターミナル内

mkdir ~/.bash

生のgit-Prompt.shファイルをgit contribから~/.bashディレクトリにコピーします。 https://github.com/git/git/blob/master/contrib/completion/git-Prompt。 sh

~/.bashrcまたは~/.bash_profile(bashのカスタマイズ/セットアップを通常配置するファイルを選択)内に、次の行を追加します。

source ~/.bash/git-Prompt.sh # Show git branch name at command Prompt
export GIT_PS1_SHOWCOLORHINTS=true # Option for git-Prompt.sh to show branch name in color

# Terminal Prompt:
# Include git branch, use Prompt_COMMAND (not PS1) to get color output (see git-Prompt.sh for more)
export Prompt_COMMAND='__git_ps1 "\w" "\n\\\$ "' # Git branch (relies on git-Prompt.sh)

Gitリポジトリ内にいる限り、Bashプロンプトは現在のgitブランチを色で表示し、コミットされていない変更があるかどうかを示します。

10
typelogic

ホームフォルダーに移動

クリック Ctrl+h 隠しファイルを表示します。

.bashrcファイルを開き、最後に次を貼り付けます。

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\] $ "

端末を開いている場合は、閉じてからもう一度開いてください。楽しい!!

2
webtechnelson

私の問題は、オプションを有効にしていないことでした

ログインシェルとしてコマンドを実行 in

TerminalEditプロファイル設定コマンド

0
Joker

取り替える

parse_git_branch

parse_git_branch 2>/dev/null

あなたのPS1の定義と幸せに生きます。

0
andrej