通过git跟踪工作时间

时间:2013-08-15 22:29:54

标签: git bash tracking

我最近完成了一个项目,让我一次性工作变量。

例如,我可能会在上午8点开始,直到下午2:30。 我会在我开始时立即提交,并在我离开之前提交。

我想估算一下我在这个项目上工作了多少小时。

我曾计划查看我的提交并手动解决这个问题,但git web界面只是提供了一个模糊的时间戳,例如“2个月前创作”。

是否有人知道通过git计算小时数的任何第三方应用程序?

或者希望提供下一步尝试的指示?

谢谢!

7 个答案:

答案 0 :(得分:6)

我已经创建了git-hours工具来估算你所描述的在git存储库上花费的时间。

计算小时的算法非常简单而且愚蠢。请参阅文档以了解其工作原理:https://github.com/kimmobrunfeldt/git-hours#how-it-works

例如,估算Bootstrap的小时数:

➜  bootstrap git:(master) git hours
{

  ...

  "total": {
    "hours": 9959,
    "commits": 11470
  }
}

请注意,该信息不够准确,不能用于结算。它大致了解了项目的大小。

答案 1 :(得分:3)

npm install git-hours -g

然后,运行:

cd /to/your/local/repository

git hours ; # total of all time
git hours --since yesterday # since yesterday

答案 2 :(得分:3)

还有一个小的Python脚本:coded4。设置:

git clone git://github.com/Xion/coded4.git
cd coded4
./setup.py develop

使用:

cd /to/your/local/repository
coded4 .

并提供可用选项的粗略概念:

coded4 -h
usage: coded4 [-h] [--repo TYPE] [--format FORMAT] [--since DATE]
              [--until DATE] [--cluster-algo ALGO] [--approx-algo ALGO]
              [--epsilon MINUTES]
              DIRECTORY

还有:git_time_extractora blog-post about getting time estimates using git-pandas

答案 3 :(得分:2)

尝试https://gitential.com

在估算编码所花费的时间之前,Gitential会对作者进行重复数据删除并过滤被视为异常值的代码更改,以降低git数据的噪音。

答案 4 :(得分:0)

您可以使用Assembla空间(至少)Git存储库(Assembla或Github或Bitbucket)和时间工具(以及特殊格式化的Git提交消息)并按自定义期间集成来自时间选项卡的时间报告。

无论如何,每次提交的时间跟踪是你自己的任务 - 没人知道,你在两次连续提交之间真正工作了多少

答案 5 :(得分:0)

git-hours对我不起作用。所以我建立了一个简单的npm脚本,名为git-time

安装

npm install -g git-time

用法

git-time <path>

<path>应该是有效的Git存储库根路径。

答案 6 :(得分:0)

由于我无法建立git-hours,因此我采用了类似的简单算法,制作了一个工具来估算存储库中每个开发人员的工作量:它仍然假定会话首次提交的时间固定。

您可以在这里获取它:https://github.com/apache/spark/blob/v2.4.0/pom.xml

该代码是用纯文本编写的,并使用git-estimate来读取存储库的提交。

用法

至少运行一次:

git-estimate -repo=/path/to/repo

这将使用默认设置来计算在指定路径上回购所花费的时间。

git-estimate -h
  -baseline float
        baseline value for session estimate (default 2)
  -estimate string
        estimation method. Accepted values are "session" and "day". (default "session")
  -json
        if true will output estimates in JSON format
  -repo string
        git repository path. If no flag is specified the current folder is assumed (default ".")