您好,登錄后才能下訂單哦!
1, 讓BASH 命令行顯示當(dāng)前支線 以及 顯示提交狀態(tài) 并且使用不同顏色高亮區(qū)分
效果圖:
進(jìn)入到git的工作目錄后,顯示當(dāng)前所在支線名稱
如果有已跟蹤 未暫存的版本,那么使用紅色* 提示
如果有已跟蹤 未提交的版本,那么使用**** 提示
切換到其他支線后 提示符能打印當(dāng)前支線名稱
切換到非Git工作目錄后,不影響其他操作。
定制原理:主要就是修改 PS1 變量(如果不知道PS1是什么,那么請(qǐng)先了解)。
修改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)行不正常的問(wèn)題。
2,讓Git的日常輸出更友好,以及自定義log格式
git默認(rèn)的輸出是單一顏色的,不僅不夠美觀,也不容易閱讀。實(shí)際上,git本身就支持用多種顏色來(lái)顯示其輸出的信息,只需在命令行中運(yùn)行以下命令來(lái)修改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
你將看到類似下圖的輸出:
怎么樣,不賴吧?不過(guò),每次查看log都輸出這么一長(zhǎng)串的命令,實(shí)在是不太現(xiàn)實(shí)。咱們來(lái)通過(guò)git的命令別名來(lái)解決這個(gè)問(wèn)題。輸入以下命令:
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)于輸入了剛才那一長(zhǎ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 版本控制管理
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。