当前位置: 代码迷 >> 综合 >> 一个方便版本管理员的git log shell脚本
  详细解决方案

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

热度:90   发布时间:2024-02-28 14:26:22.0

直接分享

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[@]}
doecho -e "\033[41;33m$s\033[0m"if [ $3 ] && [ $4 ]thengit 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.txtelif [ $3 ]thengit 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.txtelif [ $4 ]thengit 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.txtelsegit 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.txtfi
done

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

输出格式为:

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

命令格式为:

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

注意:

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

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

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

  相关解决方案