十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1, 讓BASH 命令行顯示當(dāng)前支線 以及 顯示提交狀態(tài) 并且使用不同顏色高亮區(qū)分
黃埔ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
效果圖:
進(jìn)入到git的工作目錄后,顯示當(dāng)前所在支線名稱
如果有已跟蹤 未暫存的版本,那么使用紅色* 提示
如果有已跟蹤 未提交的版本,那么使用**** 提示
切換到其他支線后 提示符能打印當(dāng)前支線名稱
切換到非Git工作目錄后,不影響其他操作。
定制原理:主要就是修改 PS1 變量(如果不知道PS1是什么,那么請先了解)。
修改bashrc 不管是全局的,還是當(dāng)前用戶的
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 #合并沖突狀態(tài) git status 2> /dev/null | grep -qE "Changes not staged for commit|Changed but not updated" && echo -e '\033[31m*\033[0m' && return 0 #未暫存狀態(tài) git status 2> /dev/null | grep -q "Changes to be committed" && echo -e '\033[33m*\033[0m' && return 0 #未提交狀態(tài) } [ "$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)\\$ "
這樣就能顯示圖中的效果了,當(dāng)然我這里的PS1 有點(diǎn)復(fù)雜,如果你能看懂最后兩個(gè)變量引用,那么自然就理解了。
2016.01.23更新,修復(fù)了在os x下運(yùn)行不正常的問題。
2,讓Git的日常輸出更友好,以及自定義log格式
git默認(rèn)的輸出是單一顏色的,不僅不夠美觀,也不容易閱讀。實(shí)際上,git本身就支持用多種顏色來顯示其輸出的信息,只需在命令行中運(yùn)行以下命令來修改git的設(shè)置,即可開啟多顏色輸出:
git config --global color.status auto git config --global color.diff auto git config --global color.branch auto git config --global color.interactive auto
執(zhí)行以上命令后,git的status, diff和branch等諸命令的輸出就都是帶有顏色的了。見下圖示例。
完成上述步驟后,git log
命令的輸出雖然有了點(diǎn)顏色,但還是顯得枯燥(見下圖)。
不要緊,強(qiáng)大的git提供了自定義log格式的功能,嘗試輸入以下命令:
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
你將看到類似下圖的輸出:
怎么樣,不賴吧?不過,每次查看log都輸出這么一長串的命令,實(shí)在是不太現(xiàn)實(shí)。咱們來通過git的命令別名來解決這個(gè)問題。輸入以下命令:
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'"
上述命令將創(chuàng)建一個(gè)命令別名 lg
,每次你使用命令 git lg
就相當(dāng)于輸入了剛才那一長串命令?,F(xiàn)在,如果想看美觀的多顏色輸出,就使用 git lg
,如果想看普通的log輸出,就使用 git log
,二者互不干擾。
如果你想讓log輸出某些特定的信息,可以自己調(diào)整 --pretty
參數(shù)的值,例如下面的命令將只顯示commit的hash,提交時(shí)間,提交者姓名:
git log --pretty=format:'%h %ar %an'
format后面單引號(hào)中的內(nèi)容替換為你想要的格式,即可實(shí)現(xiàn)自定義的log輸出格式。這里的%h
, %ar
等是一些git預(yù)定義的占位符,完整列表如下:
Git 版本控制管理