2017-12-18 30 views
-1

私は、ターミナルからのリポジトリとブランチの作業を助けるための小さなツールを作成しようとしています。ターミナルプロンプトの現在のgitブランチ

基本的な考え方は、プロンプトにブランチの名前を付けることです(仮想環境と同様に、プロンプトに現在の環境も表示されます)。

次のコマンドはちょうど私が、現在でよ支店の名前を抽出します。これを含め

git branch | grep "*" | cut -c3- 

を私の.bashrcファイルにPS1作品を修正するために、コンソールが開いているときが唯一のプロンプトを変更します。

cd my_foldercd ..というフォルダを変更するたびにプロンプ​​トを更新したいので、別のリポジトリに移動すると、ブランチが更新されます。

cdのエイリアスを作成しました。cdの実行後にこの小さなスクリプトが追加されるようになりました。

しかし、私がフォルダを変更していないので、ブランチを変更するのにgitを使用した場合、プロンプトは直ちに更新されません。

gitのエイリアスを作成することもできますが、私はあまりにも多くのものを変更しているという印象を持っています。これは既に存在するものかもしれません。

車輪の再発明を避けるため、これは既に存在しますか?それを使うのは良い考えですか?

ありがとうございました

+2

正確にこれを行うシェルフレームワークがいくつかあります。 https://github.com/robbyrussell/oh-my-zsh、https://github.com/sorinionescu/preztoなどをご覧ください。 –

答えて

0

〜/ .bashrcにこのコードを追加してください。追加した後、sourceコマンドを使用することを忘れないでください。

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

希望する場合があります。

0

まずあなたがGitのリポジトリにあるかどうかをチェックし、シンボリック-REFコマンドを使用して抽出することである。

function gitbranch 
{ 
    if git rev-parse --git-dir &>/dev/null; then 
     printf "%s" "[$(git symbolic-ref HEAD --short)]" 
    fi 
} 
export PS1="\[email protected]\h \[\033[32m\]\w\[\033[33m\]\$(gitbranch)\[\033[00m\] $ " 

は、あなたの.bashrcファイルに追加します。