您好,登錄后才能下訂單哦!
1, 讓BASH 命令行顯示當前支線 以及 顯示提交狀態 并且使用不同顏色高亮區分
效果圖:
進入到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 log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
你將看到類似下圖的輸出:
怎么樣,不賴吧?不過,每次查看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 版本控制管理
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。