通过 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 远程跟踪分支的给定名称如何找到哪个本地分支跟踪它?