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

时间:2014-07-27 14:15:20

标签: git

有没有办法获得发生的提交列表,比如说在09:00到17:00,以及他们的时间?

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

3 个答案:

答案 0 :(得分:2)

我认为它看起来像git log --after="2014-01-05 09:00" --before="2014-01-05 17:00"

请参阅此处的参考资料:http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History

答案 1 :(得分:2)

嗯,实际上尤金非常接近你想要的。试试这个:

git log --after="09:00" --before="17:00"

省略这一天应该按预期工作。这会为您提供原始输出,如果您需要不同的输出,请尝试git log --pretty=tformat:"%C(cyan)%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08 %C(bold red)%h %C(bold blue)%<(22)%ae %C(reset)%s"或为git formatting log创建自己的Google。

我使用git logs between hoursgit see daily logs在Google上进行了简短的搜索,如果您想要更天真的话,可以获得更高级的功能和输出。

答案 2 :(得分:0)

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

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

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

git log --pretty=format:'%H|%aN|%ae|%ad|%s' > some_file.txt

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

log --date=iso --pretty=format:'{\"ShortHash\":\"%h\",\"Name\":\"%an\",\"Email\":\"%ae\",\"Date\":\"%ad\",\"Subject\":\"%s\"}' 

对于&#34; smarts&#34;我已经结束了在输出文件上面运行一个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") ;
}