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

主頁 > 知識庫 > 在 Shell 提示符中顯示 Git 分支名稱的方法

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

熱門標簽:地圖標注輻射圖案 安裝外呼系統費用 衛星地圖標注地名 申請公司400電話要注意什么 電銷機器人 劍魚 寧波智能外呼系統公司 奧維互動地圖標注參數 曲阜400電話辦理 聯通電話機器人怎么接

Git 的好處之一就是把代碼的分支管理變成了一件極其便捷的事情,分支只保留差異,不用復制任何文件,不用連接網絡,快速創建,用完即刪。Git 分支與項目的復雜程度無關,不管你的項目多么復雜,創建 Git 分支永遠都是瞬間的事情。同時,因為保留了父類分支的信息,所以分支的合并也變得異常簡單。

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

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

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

復制代碼 代碼如下:

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

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

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

復制代碼 代碼如下:

ref: refs/heads/BRANCH-NAME

我們只要讀取這個文件,然后再和對應的路徑互相匹配一下就知道正確地分支名稱了。不要只是簡單的從 HEAD 內容中拆分出最后的 BRANCH-NAME,因為它不一定是正確地。

以下是 Aaron Crane 的實現方式:

復制代碼 代碼如下:

## 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=''
}

接下來,將這個函數加入到 PROMPT_COMMAND 中,保證 Bash 在創建 prompt 之前調用這個函數取得分支名稱:
復制代碼 代碼如下:

PROMPT_COMMAND="find_git_branch; $PROMPT_COMMAND"

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

復制代碼 代碼如下:

# 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 等文件中即可,我的系統是 Snow Leopard,PS1 定義在 /etc/bashrc 中,所以我直接修改的這個文件。

最終效果如下:

UPDATE – 2010/06/23:

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

復制代碼 代碼如下:

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

Ubuntu 系統,請參考: /etc/bash_completion.d/git

您可能感興趣的文章:
  • 淺談Git分支管理策略
  • git恢復刪除的分支及內容的方法
  • Git 創建分支提交遠程分支詳解
  • Git 詳細介紹查看、刪除、重命名遠程分支和tag
  • git分支的創建、切換、合并及刪除操作小結
  • Git常用場景使用之分支操作

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

巨人網絡通訊聲明:本文標題《在 Shell 提示符中顯示 Git 分支名稱的方法》,本文關鍵詞  在,Shell,提示符,中,顯示,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在 Shell 提示符中顯示 Git 分支名稱的方法》相關的同類信息!
  • 本頁收集關于在 Shell 提示符中顯示 Git 分支名稱的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    2021久久国产精品不只是精品| 五月婷婷激情综合网| 亚洲欧洲一区二区在线播放| 国产自产2019最新不卡| 欧美精品自拍偷拍动漫精品| 中文字幕一区二区三区不卡在线| 激情深爱一区二区| www欧美成人18+| 成人性生交大片免费看中文| 国产精品三级在线观看| 国产在线精品不卡| 精品国产一二三| 日本免费在线视频不卡一不卡二 | 国内精品伊人久久久久av一坑| 4438成人网| 另类综合日韩欧美亚洲| 久久久久久电影| 国产在线乱码一区二区三区| 国产日产欧产精品推荐色| 菠萝蜜视频在线观看一区| 亚洲男人都懂的| 色婷婷久久久综合中文字幕| 久久久精品天堂| 色诱亚洲精品久久久久久| 日韩av电影免费观看高清完整版| 99国产精品国产精品久久| 亚洲国产三级在线| 欧美电影免费提供在线观看| 国产激情一区二区三区四区| 亚洲精品国产品国语在线app| 欧美日韩小视频| 奇米精品一区二区三区在线观看| 精品精品欲导航| 一本大道av伊人久久综合| 国产自产2019最新不卡| 久久久99久久| 日韩一区二区精品葵司在线 | 狠狠色丁香婷综合久久| www.亚洲人| 久久精品理论片| 亚洲成av人片在线观看无码| 国产网站一区二区| 3751色影院一区二区三区| av高清不卡在线| 国产在线精品免费av| 污片在线观看一区二区| **欧美大码日韩| 欧美极品xxx| 久久久久国产一区二区三区四区 | 91片黄在线观看| 国产精品一区2区| 久久精品久久综合| 美女精品一区二区| 美女在线一区二区| 亚洲成av人片在线观看| 一区二区三区在线观看欧美| 亚洲日本va午夜在线影院| 国产精品白丝在线| 亚洲视频一区二区在线观看| 欧美精品乱码久久久久久| 国产精品一级二级三级| 久久精品国产澳门| 亚洲国产成人高清精品| 欧美激情综合五月色丁香小说| 7777女厕盗摄久久久| 91网上在线视频| 波多野结衣欧美| 91婷婷韩国欧美一区二区| 九一九一国产精品| 日韩 欧美一区二区三区| 日韩av不卡在线观看| 青娱乐精品视频在线| 亚洲电影一级片| 日本亚洲最大的色成网站www| 亚洲免费观看高清完整版在线| 国产精品私人影院| 亚洲精品写真福利| 亚洲另类春色校园小说| 亚洲亚洲人成综合网络| 男人的天堂久久精品| 日韩精品电影在线观看| 亚洲免费av在线| 亚洲影院在线观看| 一区二区三区产品免费精品久久75| 亚洲丝袜自拍清纯另类| 中文字幕一区二区在线播放| 欧美国产一区在线| 亚洲精品美国一| 亚洲成人av电影| 国产一区在线不卡| 成人精品小蝌蚪| 在线视频欧美区| 精品日韩一区二区三区免费视频| 欧美成人伊人久久综合网| 国产精品免费久久久久| 亚洲激情五月婷婷| 久久99精品久久只有精品| 韩国三级中文字幕hd久久精品| 不卡一区中文字幕| 欧美日韩一区二区在线观看 | 成人国产电影网| 欧美日韩国产综合草草| 久久婷婷国产综合精品青草| 中文字幕亚洲综合久久菠萝蜜| 亚洲国产wwwccc36天堂| 欧美v国产在线一区二区三区| 日本一区二区三区国色天香| 亚洲免费看黄网站| 国产不卡视频一区| 欧美日韩精品一区二区在线播放| 国产喷白浆一区二区三区| 亚洲精品成人少妇| 成人黄色网址在线观看| 91精品国产一区二区三区香蕉| 亚洲欧洲日韩女同| 久久99精品视频| 91精品国产色综合久久不卡电影| 中文一区在线播放| 国产在线看一区| 欧美三级日韩在线| 一本到不卡精品视频在线观看| 69久久夜色精品国产69蝌蚪网| 亚洲毛片av在线| 成熟亚洲日本毛茸茸凸凹| 日韩一区二区精品在线观看| 亚洲裸体在线观看| 99久久久精品| 精品国产1区二区| 蜜桃视频在线一区| 欧美日韩亚洲国产综合| 樱桃视频在线观看一区| 成人午夜电影久久影院| 欧美—级在线免费片| 美女视频黄免费的久久| 欧美日韩中文一区| 亚洲男人天堂一区| 91麻豆国产在线观看| 国产日韩欧美不卡| 国产成人免费视频网站| 精品奇米国产一区二区三区| 免费不卡在线观看| 91精品在线麻豆| 蜜臀va亚洲va欧美va天堂| 欧美视频在线观看一区二区| 日韩一区二区视频在线观看| 国产精品久久久久永久免费观看| 韩国女主播一区二区三区| 欧美大片拔萝卜| 韩日精品视频一区| 欧美国产丝袜视频| 波多野结衣一区二区三区| 中文字幕一区二区三区乱码在线| a4yy欧美一区二区三区| 亚洲日本电影在线| 欧美日韩成人高清| 日韩高清电影一区| 国产亚洲人成网站| 成人av片在线观看| 亚洲资源在线观看| 欧美日产国产精品| 经典三级视频一区| 久久久青草青青国产亚洲免观| 国产福利精品导航| 欧美国产禁国产网站cc| 91视频一区二区| 亚洲精品伦理在线| 日韩美一区二区三区| 日韩欧美在线观看一区二区三区| 国产精品自产自拍| 7777精品伊人久久久大香线蕉 | 日本不卡不码高清免费观看| 精品国产麻豆免费人成网站| 风流少妇一区二区| 亚洲精品日产精品乱码不卡| 欧美高清一级片在线| 国产成人精品午夜视频免费| 亚洲视频免费观看| 欧美日韩一级片在线观看| 欧美a级一区二区| 亚洲精品视频一区| 欧美一区二区三区性视频| 国产原创一区二区三区| 欧美国产精品v| 日韩一区二区三免费高清| 国内精品自线一区二区三区视频| 亚洲色图视频网| 日本成人在线不卡视频| 中文字幕一区二区在线观看| 欧美一区永久视频免费观看| 99国产精品久久久久久久久久| 亚洲综合精品久久| 国产精品伦理在线| 精品奇米国产一区二区三区| 欧美综合天天夜夜久久| 国产精品91xxx| 久久精品国产免费看久久精品| 亚洲激情六月丁香| 中文字幕一区在线观看| 欧美成人免费网站| 欧美精品第一页|