到目前为止,我得到了这个非常有用的命令,这有助于我确定,当我开展项目时:
git log --author="MyUsername" --pretty=format:"%cd; %h; %s" > time.csv
但是我很感兴趣,如果有办法找出我在提交上工作了多长时间。 从理论上讲,执行此操作的方法是将提交的文件与此提交中最早的更改日期一起使用,并计算此提交与提交之间的时间跨度。
这是否可能/准确?实现这一目标的代码是什么?
答案 0 :(得分:1)
不,这是不可能的,提交是git中跟踪内容的原子单元 - git是面向内容的,并且有自己的简单树/ blob文件系统,它在os'文件系统之上使用,所以你无法检查用git“(a)提交的最早更改日期”。您可以检查的唯一事情是提交时间戳和提交之间的时间间隔,就像您已经做的那样。
我唯一可以建议的是预提交钩子。当git执行您的自定义预提交挂钩时,您可以查看要提交的所有文件,找到文件系统上最早的时间戳,就像您建议并在某处写入此元数据一样。甚至可能包含它与提交。可靠性如何......好吧,正如评论中所提到的,它将取决于您无关的物理活动的计算:/也许您可以将预提交挂钩弹出窗口设置为编辑器或消息框,您可以在其中输入数量花费在提交本身上的时间。