在每天结束时获得最后一个git提交



我需要为一个项目加班。我在1600后工作,必须得到补偿。我需要找到过去4个月里每天对存储库的最后一次提交(分支无关紧要(。

我将如何实现这一点?我需要一种可以解析的格式,这样我就可以在上面运行脚本并计算的小时数

您可以像这样每天提交git log --after="2018-11-12 00:00" --format="%ci %cr""

之后,您可以编写一个脚本来运行每天的

有关更多详细信息,请阅读此

我使用下面的一行代码来获取自昨天(2020年3月26日(以来提交的提交哈希,这些提交是在16:00:00之后提交的。您可以根据日期进行相应调整:

$ git log --all --since="26/03/2020" --oneline --pretty=format:"%H %an %ad" | awk -F ' ' '{gsub(":","",$7); if($7>160000) print $1}'

下面的管道应该为您提供要查找的输出

git log --all --since="26/03/2019" --pretty=format:"%an %ad" --date=format:'%Y-%m-%d %H:%M:%S' | process.awk MYNAME=Enrico

脚本process.awk如下(您必须将其chmod +x,或者您必须将| process.awk ...更改为| awk -f process.awk ...(

#!/usr/bin/env -S awk -f
BEGIN {
fourPM = 16*3600
}
!match($1,MYNAME) || $2 == previousDay { next }
{
previousDay = $2
split($3,previousTime,":")
oversec = previousTime[1]*3600 
+ previousTime[2]*60   
+ previousTime[3]      
- fourPM
if (oversec > 0) {
$(NF + 1) = "overtime: " int(oversec/3600)        
":" int((oversec % 3600)/60) 
":" int(oversec % 60)
print $0
}
}

最新更新