首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在git post-commit钩子中,如何获得已更改的文件的列表?

在git post-commit钩子中,如何获得已更改的文件的列表?
EN

Stack Overflow用户
提问于 2010-11-17 22:52:16
回答 2查看 5.2K关注 0票数 11

尝试计算Git post-commit钩子中的提交花费了多长时间。

我有一个post-commit git挂钩,它通过API提交关于提交的信息。我想要做的是弄清楚在提交上花费了多长时间。大概吧。

我的假设是,通过找到所涉及的文件的所有创建时间和修改时间中的最小值,并与最大创建时间和修改时间进行比较,可以得出一个粗略的值。

我可以在Python脚本中轻松做到这一点。如果有人告诉我是文件"foo.txt“、"bar.txt”和"path/bla.txt“,我可以根据这些文件在脚本中快速执行一些算术运算。

那么,在git post-commit钩子中,我如何获得已更改的文件的列表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-17 23:49:49

当围绕git编写脚本时,您应该尝试坚持使用plumbing commands -它们的格式不太可能改变,也更容易解析。下面是一个命令,它输出在提交中更改的路径的名称:

代码语言:javascript
复制
git diff-tree -r --name-only --no-commit-id <tree-ish>

除此之外,您可能希望检查索引,因为它包含有关文件被暂存的时间戳,这可能会给您带来额外的优势;但是,我不相信有一种方法可以访问这些信息。

票数 12
EN

Stack Overflow用户

发布于 2010-11-17 23:10:40

我做了一些研究,发现git log --name-only -n1是最好的方法。要拿到最低分并不难。和最大。通过执行一些字符串匹配并使用Python os.stat模块,从文件中去掉时间戳。

作为一般的解决方案,它仍然不是很好,因为文件上的修改时间并不能真正反映实际花费的时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4205589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档