中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

個性定制你的 Git 命令行提示符

發布時間:2020-08-08 03:05:36 來源:網絡 閱讀:2829 作者:Professor哥 欄目:軟件技術

1, 讓BASH 命令行顯示當前支線 以及 顯示提交狀態 并且使用不同顏色高亮區分


效果圖:

個性定制你的 Git 命令行提示符

個性定制你的 Git 命令行提示符

進入到git的工作目錄后,顯示當前所在支線名稱

如果有已跟蹤 未暫存的版本,那么使用紅色* 提示

如果有已跟蹤 未提交的版本,那么使用**** 提示

切換到其他支線后 提示符能打印當前支線名稱

切換到非Git工作目錄后,不影響其他操作。


定制原理:主要就是修改 PS1 變量(如果不知道PS1是什么,那么請先了解)。

修改bashrc  不管是全局的,還是當前用戶的 

function get_git_branch_now  {
        git branch --no-color 2> /dev/null | awk '/\*/{printf "\033[34m[>"$2"]\033[0m" }'
        return 0
}
function get_git_status_now {
        git status 2> /dev/null | grep -q "Unmerged paths" && echo -e '\033[41;37m*\033[0m' &&  return 0                #合并沖突狀態
        git status 2> /dev/null | grep -qE "Changes not staged for commit|Changed but not updated" && echo -e '\033[31m*\033[0m' &&  return 0   #未暫存狀態
        git status 2> /dev/null | grep -q "Changes to be committed" && echo -e '\033[33m*\033[0m' &&  return 0  #未提交狀態
}

  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="\[\e[36m\][\u\[\e[0m\]\[\e[5m\]@\[\e[0m\]\h \[\e[32m\]\w\[\e[36m\]]\[\e[0m\]\$(get_git_branch_now)\$(get_git_status_now)\\$ "

這樣就能顯示圖中的效果了,當然我這里的PS1 有點復雜,如果你能看懂最后兩個變量引用,那么自然就理解了。

2016.01.23更新,修復了在os x下運行不正常的問題。



2,讓Git的日常輸出更友好,以及自定義log格式

git默認的輸出是單一顏色的,不僅不夠美觀,也不容易閱讀。實際上,git本身就支持用多種顏色來顯示其輸出的信息,只需在命令行中運行以下命令來修改git的設置,即可開啟多顏色輸出:

git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto

執行以上命令后,git的status, diff和branch等諸命令的輸出就都是帶有顏色的了。見下圖示例。

個性定制你的 Git 命令行提示符

自定義log格式

完成上述步驟后,git log 命令的輸出雖然有了點顏色,但還是顯得枯燥(見下圖)。

個性定制你的 Git 命令行提示符

不要緊,強大的git提供了自定義log格式的功能,嘗試輸入以下命令:

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

你將看到類似下圖的輸出:

個性定制你的 Git 命令行提示符

怎么樣,不賴吧?不過,每次查看log都輸出這么一長串的命令,實在是不太現實。咱們來通過git的命令別名來解決這個問題。輸入以下命令:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'"

上述命令將創建一個命令別名 lg,每次你使用命令 git lg 就相當于輸入了剛才那一長串命令。現在,如果想看美觀的多顏色輸出,就使用 git lg,如果想看普通的log輸出,就使用 git log,二者互不干擾。

如果你想讓log輸出某些特定的信息,可以自己調整 --pretty 參數的值,例如下面的命令將只顯示commit的hash,提交時間,提交者姓名:

git log --pretty=format:'%h %ar %an'

format后面單引號中的內容替換為你想要的格式,即可實現自定義的log輸出格式。這里的%h%ar等是一些git預定義的占位符,完整列表如下:


個性定制你的 Git 命令行提示符


Git 版本控制管理

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肥西县| 怀来县| 图们市| 会宁县| 上林县| 北票市| 徐水县| 保靖县| 新余市| 麻栗坡县| 自贡市| 上饶市| 贵南县| 桐乡市| 秦安县| 东丽区| 北碚区| 闻喜县| 黎川县| 潜江市| 阿克苏市| 永和县| 闽侯县| 陆丰市| 广安市| 田林县| 宜黄县| 兴业县| 甘南县| 新平| 福泉市| 泰州市| 吴堡县| 嘉善县| 咸阳市| 龙山县| 佛坪县| 苏州市| 新津县| 旬邑县| 阿拉善盟|