婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 在 Shell 提示符中顯示 Git 分支名稱的方法

在 Shell 提示符中顯示 Git 分支名稱的方法

熱門標(biāo)簽:地圖標(biāo)注輻射圖案 安裝外呼系統(tǒng)費(fèi)用 衛(wèi)星地圖標(biāo)注地名 申請(qǐng)公司400電話要注意什么 電銷機(jī)器人 劍魚 寧波智能外呼系統(tǒng)公司 奧維互動(dòng)地圖標(biāo)注參數(shù) 曲阜400電話辦理 聯(lián)通電話機(jī)器人怎么接

Git 的好處之一就是把代碼的分支管理變成了一件極其便捷的事情,分支只保留差異,不用復(fù)制任何文件,不用連接網(wǎng)絡(luò),快速創(chuàng)建,用完即刪。Git 分支與項(xiàng)目的復(fù)雜程度無關(guān),不管你的項(xiàng)目多么復(fù)雜,創(chuàng)建 Git 分支永遠(yuǎn)都是瞬間的事情。同時(shí),因?yàn)楸A袅烁割惙种У男畔?,所以分支的合并也變得異常?jiǎn)單。

當(dāng)在一個(gè)項(xiàng)目中頻繁使用多個(gè)分支時(shí),可以使用 git status 命令查詢自己現(xiàn)在正工作在哪個(gè)分支下面,不過難免有腦子發(fā)昏的時(shí)候,忘記自己在哪個(gè)分支下面,因而發(fā)生誤操作之類的杯具。

那么把分支顯示在 Shell 提示符中無疑方便了很多,再也不需要頻繁的使用 git status 命令了…

實(shí)現(xiàn)原理很簡(jiǎn)單,大體就是查詢當(dāng)前目錄下面的 Git 分支名稱,然后嵌入到 PS1 變量中。那么,Git 分支名稱可以通過下面的腳本輕松的獲得:

復(fù)制代碼 代碼如下:

git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'

把上面的腳本封裝到函數(shù)中,修改 PS1 變量,嵌入函數(shù)… 大體是這樣。但是這樣也意味著一個(gè)問題,就是每次 shell 活動(dòng)(比如切換目錄,甚至只是敲下回車)都會(huì)執(zhí)行一次 git … sed 命令,這樣每次都啟動(dòng)2個(gè)進(jìn)程,實(shí)在是有些不爽。

好在,可以使用另外一種方式來獲取 Git 分支名稱,在每個(gè) Git 項(xiàng)目中,都有一個(gè) .git 目錄,這個(gè)目錄下面有個(gè)叫做 HEAD 的文件,里面包含的當(dāng)前分支的路徑信息:

復(fù)制代碼 代碼如下:

ref: refs/heads/BRANCH-NAME

我們只要讀取這個(gè)文件,然后再和對(duì)應(yīng)的路徑互相匹配一下就知道正確地分支名稱了。不要只是簡(jiǎn)單的從 HEAD 內(nèi)容中拆分出最后的 BRANCH-NAME,因?yàn)樗灰欢ㄊ钦_地。

以下是 Aaron Crane 的實(shí)現(xiàn)方式:

復(fù)制代碼 代碼如下:

## Parses out the branch name from .git/HEAD:
find_git_branch () {
    local dir=. head
    until [ "$dir" -ef / ]; do
        if [ -f "$dir/.git/HEAD" ]; then
            head=$( "$dir/.git/HEAD")
            if [[ $head = ref:\ refs/heads/* ]]; then
                git_branch=" → ${head#*/*/}"
            elif [[ $head != '' ]]; then
                git_branch=" → (detached)"
            else
                git_branch=" → (unknow)"
            fi
            return
        fi
        dir="../$dir"
    done
    git_branch=''
}

接下來,將這個(gè)函數(shù)加入到 PROMPT_COMMAND 中,保證 Bash 在創(chuàng)建 prompt 之前調(diào)用這個(gè)函數(shù)取得分支名稱:
復(fù)制代碼 代碼如下:

PROMPT_COMMAND="find_git_branch; $PROMPT_COMMAND"

最后只要重新定義 PS1 變量即可:

復(fù)制代碼 代碼如下:

# Here is bash color codes you can use
  black=$'\[\e[1;30m\]'
    red=$'\[\e[1;31m\]'
  green=$'\[\e[1;32m\]'
 yellow=$'\[\e[1;33m\]'
   blue=$'\[\e[1;34m\]'
magenta=$'\[\e[1;35m\]'
   cyan=$'\[\e[1;36m\]'
  white=$'\[\e[1;37m\]'
 normal=$'\[\e[m\]'
 
PS1="$white[$magenta\u$white@$green\h$white:$cyan\w$yellow\$git_branch$white]\$ $normal"

以上的代碼你可以放在 ~/.profile 或者 ~/.bash_profile 等文件中即可,我的系統(tǒng)是 Snow Leopard,PS1 定義在 /etc/bashrc 中,所以我直接修改的這個(gè)文件。

最終效果如下:

UPDATE – 2010/06/23:

如果你安裝了隨 Git 附送的 git-completion.sh 子命令自動(dòng)完成腳本,也可以使用該腳本提供的方法:

復(fù)制代碼 代碼如下:

export PS1="[\u@\h \W"'$(__git_ps1 " (%s)")'"]\$ "

Ubuntu 系統(tǒng),請(qǐng)參考: /etc/bash_completion.d/git

您可能感興趣的文章:
  • 淺談Git分支管理策略
  • git恢復(fù)刪除的分支及內(nèi)容的方法
  • Git 創(chuàng)建分支提交遠(yuǎn)程分支詳解
  • Git 詳細(xì)介紹查看、刪除、重命名遠(yuǎn)程分支和tag
  • git分支的創(chuàng)建、切換、合并及刪除操作小結(jié)
  • Git常用場(chǎng)景使用之分支操作

標(biāo)簽:大慶 大興安嶺 江西 遵義 仙桃 安康 三門峽 上饒

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在 Shell 提示符中顯示 Git 分支名稱的方法》,本文關(guān)鍵詞  在,Shell,提示符,中,顯示,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在 Shell 提示符中顯示 Git 分支名稱的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于在 Shell 提示符中顯示 Git 分支名稱的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美视频在线播放| 亚洲视频免费在线| 精品国产91洋老外米糕| 制服.丝袜.亚洲.另类.中文| 欧美三级电影网| 欧美视频一区在线观看| 欧美美女一区二区| 欧美一区二区精美| 精品少妇一区二区三区免费观看 | 国产福利一区二区三区在线视频| 久久99热国产| 国产精品综合网| 粉嫩aⅴ一区二区三区四区| 国产不卡高清在线观看视频| 成人午夜电影网站| 色婷婷综合久久久久中文一区二区| 99re视频精品| 欧美性受xxxx黑人xyx性爽| 欧美日韩高清在线| 日韩视频免费直播| 国产欧美va欧美不卡在线| 中文字幕永久在线不卡| 亚洲欧美另类久久久精品| 一区二区三区国产豹纹内裤在线| 亚洲一区二区三区视频在线播放| 无码av免费一区二区三区试看| 免费人成精品欧美精品| 国产成人啪免费观看软件| 99热精品国产| 91精品国产综合久久精品图片| 精品久久久久久久久久久久久久久久久 | 欧美一区二区福利在线| 国产日韩欧美不卡| 亚洲精品水蜜桃| 美女性感视频久久| 成人精品在线视频观看| 精品视频一区二区不卡| 精品国产91九色蝌蚪| 国产精品素人一区二区| 性欧美疯狂xxxxbbbb| 国产一区二区影院| 欧美在线视频日韩| 久久久精品中文字幕麻豆发布| ...xxx性欧美| 看电影不卡的网站| 色综合久久88色综合天天6| 日韩女优av电影| 一区二区三区中文字幕在线观看| 毛片av一区二区三区| 99r精品视频| 欧美v亚洲v综合ⅴ国产v| 1区2区3区国产精品| 蜜臀va亚洲va欧美va天堂 | 国产精品美女视频| 奇米精品一区二区三区在线观看 | 日韩一区二区三区四区 | 岛国精品在线观看| 欧美福利视频导航| 亚洲免费观看在线观看| 麻豆精品视频在线观看视频| 色婷婷av一区二区| 久久久久久久久免费| 婷婷丁香激情综合| 色八戒一区二区三区| 亚洲精品国产无天堂网2021| 久久久久国产精品人| 久久久精品国产免大香伊| 亚洲第一久久影院| 色综合色综合色综合| 精品久久久久久无| 午夜私人影院久久久久| 在线观看日韩电影| 亚洲欧洲日韩综合一区二区| 精品一区二区三区久久久| 欧美日韩国产123区| 亚洲视频你懂的| 成人黄色av电影| 久久综合久久久久88| 蜜臀久久久99精品久久久久久| 91福利国产成人精品照片| 国产精品国产三级国产三级人妇| 精品午夜久久福利影院| 欧美成人激情免费网| 天天操天天干天天综合网| 在线视频你懂得一区二区三区| 国产精品久久毛片av大全日韩| 国产在线日韩欧美| 精品久久久久久无| 国内成人自拍视频| 欧美r级在线观看| 激情偷乱视频一区二区三区| 日韩三级.com| 麻豆精品国产传媒mv男同| 欧美一级二级三级蜜桃| 免费在线观看成人| 日韩欧美在线网站| 精品一区二区三区久久| 久久久久久久久岛国免费| 黄网站免费久久| 国产视频一区不卡| 成人av综合在线| 亚洲三级在线免费| 91福利区一区二区三区| 亚洲观看高清完整版在线观看| 在线免费观看日本欧美| 一区二区激情视频| 7878成人国产在线观看| 麻豆极品一区二区三区| 日韩精品一区在线| 国产一区二区三区久久悠悠色av| 精品成人一区二区三区| 国产精品乡下勾搭老头1| 亚洲国产精品精华液2区45| 99久久久精品免费观看国产蜜| 亚洲欧美另类小说视频| 欧美影院精品一区| 日本不卡一区二区三区高清视频| 欧美成人性福生活免费看| 国内不卡的二区三区中文字幕 | 一区二区三区美女| 欧美日韩免费观看一区三区| 日本va欧美va瓶| 久久久久国产精品麻豆| 成人激情免费视频| 一区二区三区在线不卡| 欧美一区二区三区视频在线观看 | 欧美日韩国产电影| 久久成人麻豆午夜电影| 国产欧美视频在线观看| 91美女精品福利| 天堂av在线一区| 久久亚洲免费视频| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲成人精品一区| www亚洲一区| 在线视频你懂得一区| 国内精品伊人久久久久av影院 | 成人综合婷婷国产精品久久蜜臀| 一区二区欧美国产| 精品免费日韩av| 99精品久久只有精品| 日韩电影在线观看一区| 中国色在线观看另类| 欧美日韩国产一级| 成人污视频在线观看| 午夜av电影一区| 国产精品色一区二区三区| 欧美蜜桃一区二区三区| 国产91清纯白嫩初高中在线观看| 亚洲成av人片一区二区三区| 久久久一区二区三区捆绑**| 欧美专区亚洲专区| 国产在线不卡一区| 视频一区欧美日韩| 日韩理论片一区二区| 欧美不卡123| 欧美色图天堂网| 国产综合久久久久影院| 亚洲成年人网站在线观看| 日本一区二区三级电影在线观看 | 久久蜜桃av一区二区天堂 | 亚洲图片激情小说| 精品国免费一区二区三区| jiyouzz国产精品久久| 另类小说综合欧美亚洲| 亚洲夂夂婷婷色拍ww47| 欧美国产欧美综合| 欧美不卡在线视频| 欧美日韩三级一区| 在线亚洲一区观看| 亚洲成av人片一区二区梦乃| 日韩美女精品在线| 国产欧美日韩亚州综合 | 国产美女视频91| 视频精品一区二区| 亚洲伦理在线免费看| 国产欧美日韩麻豆91| 精品理论电影在线观看| 在线成人免费视频| 欧美色爱综合网| 972aa.com艺术欧美| 成人免费视频国产在线观看| 精品一区二区三区影院在线午夜| 亚洲成人1区2区| 玉米视频成人免费看| 国产精品福利影院| 欧美国产1区2区| 欧美激情在线看| 国产亚洲一本大道中文在线| 精品少妇一区二区三区视频免付费 | 韩国在线一区二区| 免费美女久久99| 日本视频一区二区三区| 亚洲va韩国va欧美va| 亚洲永久免费av| 一区二区三区中文字幕| 亚洲美腿欧美偷拍| 综合亚洲深深色噜噜狠狠网站| 国产精品免费网站在线观看| 欧美激情在线免费观看|