1, 让BASH 命令行显示当前支线 以及 显示提交状态 并且使用不同颜色高亮区分
成都创新互联专业为企业提供大荔网站建设、大荔做网站、大荔网站设计、大荔网站制作等企业网站建设、网页设计与制作、大荔企业网站模板建站服务,10余年大荔做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。效果图:
进入到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 版本控制管理
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款