通过 git 跟踪工作时间 [关闭]

Posted

技术标签:

【中文标题】通过 git 跟踪工作时间 [关闭]【英文标题】:Tracking work hours through git [closed] 【发布时间】:2013-08-18 05:58:29 【问题描述】:

我最近完成了一个项目,该项目涉及我一次坐下来可变时间工作。

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

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

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

有人知道通过 git 计算小时数的第三方应用吗?

或者希望提供有关下一步尝试的任何指示?

谢谢!

【问题讨论】:

您是否尝试过仅使用git log 的手动方法? 查看git time tracker git 时间跟踪器不起作用,因为我必须从一开始就使用它。我已经完成了。 我现在正在尝试使用 git log 的手动方法,但到目前为止我不太信任我的实现。 有谁知道-0700是什么意思?这是直接从我的 git 日志中复制的。日期:2013 年 8 月 15 日星期四 14:43:19 -0700 【参考方案1】:

您可以将Assembla Space 与(至少)Git 存储库(Assembla 的或 Github 的或 Bitbucket 的)和 Time Tool(以及特殊格式的 Git 提交消息)一起使用,并获得 按自定义时间段集成时间-来自时间选项卡的报告。

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

【讨论】:

【参考方案2】:

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

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

例如,估算在 Bootstrap 上花费的时间:

➜  bootstrap git:(master) git hours


  ...

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

请注意,该信息不够准确,无法用于计费。它给出了项目规模的粗略概念。

【讨论】:

我最近基于 git-hours 制作了git-csv-timesheet(感谢@Kimmo)。如果您无法让 git-hours 工作、想要 csv 输出或需要跟踪多个存储库,您可以尝试这样做【参考方案3】:
npm install git-hours -g

然后,运行:

cd /to/your/local/repository

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

【讨论】:

【参考方案4】:

试试https://gitential.com

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

【讨论】:

【参考方案5】:

还有一个小的 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_extractor和a blog-post about getting time estimates using git-pandas。

【讨论】:

安装速度比git-hours 快得多。就我而言,git-hours 根本无法安装。 更简单的安装方法:pip install coded4【参考方案6】:

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

安装

npm install -g git-time

用法

git-time <path>

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

【讨论】:

【参考方案7】:

由于我无法构建 git-hours,我制作了一个工具来估计每个开发人员在存储库上所做的工作,遵循类似的简单算法:它仍然假设会话的第一次提交的持续时间是固定的。

您可以在这里获取:git-estimate

代码是用普通的 go 编写的,并使用 go-git 来读取 repo 的提交。

用法

至少运行:

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

这将使用默认设置来计算在指定路径的 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 ".")

【讨论】:

以上是关于通过 git 跟踪工作时间 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何判断文件是不是被 git 跟踪(通过 shell 退出代码)?

通过 Git 远程跟踪分支的给定名称如何找到哪个本地分支跟踪它?

第一章 Part 2/2 Git 一览

跟踪 Android 设备的位置 [关闭]

如何将新的本地分支推送到远程 Git 存储库并对其进行跟踪?

通过 Android 眼睛检测和 OpenCV 跟踪在 android 中睁眼和闭眼