一个方便版本管理员的git log shell脚本

直接分享

OLD_IFS="$IFS"
IFS=","
arr=($1)
IFS="$OLD_IFS"
filename=$(date +%y%m%d)_$(date +%H%M%S)
touch $filename.sql
for s in ${arr[@]}
do
	echo -e "\033[41;33m$s\033[0m"
	if [ $3 ] && [ $4 ]
	then
		git log --after=$3 --before=$4 $2 --pretty=format:"%h %an %cd %s" | grep $s 
		git log --after=$3 --before=$4 $2 --pretty=format:"%h %an %cd %s" | grep $s | awk '{print $1}' | tr "\n" " "|sed -e 's/,$/\n/' >> $filename.txt
	elif [ $3 ]
	then
		git log --after=$3 $2 --pretty=format:"%h %an %cd %s" | grep $s 
		git log --after=$3 $2 --pretty=format:"%h %an %cd %s" | grep $s | awk '{print $1}' | tr "\n" " "|sed -e 's/,$/\n/' >> $filename.txt
	elif [ $4 ]
	then
		git log --before=$4 $2 --pretty=format:"%h %an %cd %s" | grep $s 
		git log --before=$4 $2 --pretty=format:"%h %an %cd %s" | grep $s | awk '{print $1}' | tr "\n" " "|sed -e 's/,$/\n/' >> $filename.txt
	else
		git log  $2 --pretty=format:"%h %an %cd %s" | grep $s 
		git log  $2 --pretty=format:"%h %an %cd %s" | grep $s | awk '{print $1}' | tr "\n" " "|sed -e 's/,$/\n/' >> $filename.txt
	fi
done

将此脚本复制下来命名为.sh文件,丢到git仓库中,即可在git bash中使用

输出格式为:

提交哈希值前八位 提交人 提交时间 提交记录

命令格式为:

sh git-log.sh "grep 参数" "提交人" "起始时间" "截止时间"

注意:

1.grep参数通常是提交的编号且与某个需求绑定,比如"#29901",某些时候提交附带的注释不规范很难查询

2.时间参数格式为"YYYY-MM-DD-HH-MM-SS",如果不附带时分秒信息,git会自动将时分秒设置为当前时间,造成某些查询出错

3.grep参数可以有多个,中间用英文逗号分隔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值