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

1, 让BASH 命令行显示当前支线 以及 显示提交状态 并且使用不同颜色高亮区分

效果图:

进入到git的工作目录后,显示当前所在支线名称

如果有已跟踪 未暂存的版本,那么使用红色* 提示

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

切换到其他支线后 提示符能打印当前支线名称

切换到非Git工作目录后,不影响其他操作。

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

修改bashrc  不管是全局的,还是当前用户的

function get_git_branch_now  {
        git branch --no-color 2> /dev/null | awk ‘/*/{print"[>"$2"]"}‘
}
function get_git_status_now {
        git status 2> /dev/null | grep "Unmerged paths" > /dev/null  2>&1  && echo -e ‘\e[41;37m*\e[0m‘ &&  return 0            #合并冲突状态
        git status 2> /dev/null | grep "Changed but not updated" > /dev/null  2>&1  && echo -e ‘\e[31m*\e[0m‘ &&  return 0      #未暂存状态
        git status 2> /dev/null | grep "Changes to be committed" > /dev/null  2>&1  && echo -e ‘\e[33m*\e[0m‘ &&  return 0      #未提交状态
}

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

这样就能显示图中的效果了,当然我这里的PS1 有点复杂,如果你能看懂最后两个变量引用,那么自然就理解了。



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等诸命令的输出就都是带有颜色的了。见下图示例。

自定义log格式

完成上述步骤后,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 版本控制管理

时间: 2024-10-12 03:28:25

个性定制你的 Git 命令行提示符的相关文章

定制bash命令行提示符

Bash中内置了PS1/PS2/PS3/PS4及PROMPT_COMMAND共5个变量,其中PS1用于命令行提示符. 默认为 [[email protected] lxh]# echo $PS1[\[email protected]\h \W]\$ 可对其设置自定义颜色及显示样式. export PS1='\[\e[0;32m\][\[email protected]\h \w \$]\[\e[m\]' 其中\033可用\e替换,二者效果一样 export PS1='\[\033[01;32m\

git命令行使用

1. git命令行配置 1)安装完git客户端之后,在任意目录右键鼠标,选择Git GUI Here 2)在打开的窗口中依次选择Help->> Show SSH Key 2)如果弹出的窗口中中间部分没有key,可以点击 Generate Key 按钮,生成key,然后将生成的key拷贝一下,添加到gitlab中即可. 2. 命令使用 1)下载代码 在存放代码的目录中,右键鼠标,选择 Git Bash Here,然后会打开终端窗口 输入: git init   创建git配置目录 输入下面命令,

[转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提示符执行这段指令时(测试Start命令执行带空格的路径的程序或文件问题),第一行Start会成功执行,跳出记事本程序,而第二行,会 Start跳出一个新的命令提示符,标题上写着路径,但是不会执行任何命令,第三行Start命令行提示符会提示C:\Program文件不存在,提示无 法执行. start

Linux命令行提示符设置

我们使用Linux系统时接触最多的是它的命令行窗口,很多时候我们都需要在命令行上输入命令,在输入的命令前都会有提示符,一般系统默认的提示符形式是:[[email protected] 工作目录]$. 其实,我们可以为自己订制个性化的命令行提示符,Linux系统提示符是用系统变量PS1来定义的,只要按规则修改PS1系统变量的值随意修改命令行提示符. 通过命令echo $PS1查看PS1的值,即PS1="[\[email protected]\h: \w \t]\$ ".修改PS1的值后,

.bat批处理脚本让cmd命令行提示符cd到工作目录 (转)

打开cmd,检查命令行提示符所在的默认位置(目录),进入该目录用notepad++创建一个文件,输入 @echo offrem 这个符号表示该行是注释.rem 进入f盘,需要先切换盘符,成功后才能进入该盘下的目录f:cd \myworkspace\echo Job is done 然后保存文件,命名为 gtd.bat 直接变成了可执行的批处理脚本. 然后在cmd的命令行提示下执行该脚本(如下): gtd.bat 命令行提示符于是就进入目录f:/myworkspace/ 来自: http://ww

Fedora 27 命令行提示符修改

在Fedora 27中要修改命令行提示符,可以编辑文件/etc/bashrc # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh

git命令行(2)

一.父提交的表示方法 1.HEAD引用 在.git/HEAD目录下存在一个HEAD文件,其记录着当前工作区对应的SHA1.如果当前工作区从某个分支检出(checkout),那么这个HEAD文件中的引用最终执行分支对应的SHA1,如果处于分离头状态(不对应分支,从某个commit检查),那么这个HEAD文件中保存的就是检出的commit SHA1. 如果我们直接使用git checkout master分支,那么HEAD的值为ref: refs/heads/master.指向.git/refs/h

【重要】使用Git命令行上传到GitHub上

[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:[email protected] 进入GitHub账号后 1·新建项目文件名称例demo,并且点击[Branch:master 输入 gh-pages 后回车键]::: [建好以后必须在自己电脑的任意位置建"相同项目文件名称demo"] 2·cd进入本地新建的项目文件中执行:git init 3·把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记

git 命令行下浏览器tig使用记录

git 命令行下浏览器tig使用记录 tig 是一款优化 git 命令行的工具,使 git 命令行更加的便捷人性化 .如果用习惯了,会上瘾. 以下是一些使用记录: 安装成功后,在 Repo 文件夹下,输入 [ tig ]+ [ Enter ]即可进入 tig 模式.此时展现在面前的将会是本地所有的 commit 记录以及分支的演化. [ j ][ k ]可上下切换选中的行,[ Enter ]可分屏查看当前 commit 记录详情,[ l ]小写的 L,全屏查看 commit 记录. [ r ]进