2017-12-18 24 views
-1

我試圖做一個小工具(也許它已經存在)來幫助從終端處理存儲庫和分支。在終端提示符當前git分支

基本上這個想法是在提示符下輸入分支的名稱(類似於虛擬環境,它也顯示提示中的當前環境)。

下面的命令只是提取分公司目前我在名字。

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

包括這在我的.bashrc文件修改PS1作品,但只有當控制檯打開時改變了提示。

我想在每次更改文件夾cd my_folder,cd ..時更新提示,所以如果我轉到另一個存儲庫,它會更新分支。

所以我爲cd創建了一個別名,它在執行cd之後現在追加了這個小腳本。

但是,如果我使用git更改分支,因爲我沒有更改文件夾,提示未立即更新。

我也可以爲git創建一個別名,但我的印象是我改變了太多的東西,也許這是已經存在的東西。

爲避免重新發明輪子,這是否已經存在?使用它是一個好主意嗎?

謝謝

+2

有許多shell框架可以做到這一點。請在https://github.com/robbyrussell/oh-my-zsh,https://github.com/sorin-ionescu/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文件。