在工作时间(或下班后)获取所有提交

Noc*_*tis 5 git

有什么方法可以获取发生的提交列表(比如说 09:00 到 17:00 之间)及其时间吗?

我唯一能想到的就是将输出发送到文件,然后尝试解析它......

Noc*_*tis 1

我最终使用以下 Git 命令进行测试:

git log  --pretty=format:'%h|%C(green)%aN%C(reset)|%C(yellow)%ae%C(reset)|%C(cyan)%ad%C(reset)|%s'
Run Code Online (Sandbox Code Playgroud)

然后,我使用它格式化为易于阅读和解析的输入文件:

git log --pretty=format:'%H|%aN|%ae|%ad|%s' > some_file.txt
Run Code Online (Sandbox Code Playgroud)

最终决定执行以下操作,输出一个可以轻松反序列化为 POCO 的 JSON:

log --date=iso --pretty=format:'{\"ShortHash\":\"%h\",\"Name\":\"%an\",\"Email\":\"%ae\",\"Date\":\"%ad\",\"Subject\":\"%s\"}' 
Run Code Online (Sandbox Code Playgroud)

为了“聪明”,我已经结束了针对上述输出文件运行 linqpad 脚本,其中主要工作是通过以下方式完成的:

bool BetweenBusinessHours(string anHour, string aStart = "08:30", string anEnd="17:00") {
    return (anHour.CompareTo(aStart) > 0)
        && (anHour.CompareTo(anEnd)  < 0) ;
}

bool DuringWeekend(string aShortDay) {
    return aShortDay.Equals("Sat")
        || aShortDay.Equals("Sun") ;
}
Run Code Online (Sandbox Code Playgroud)