git pre-commit hook可以将文件添加到repo吗?

时间:2011-01-29 03:53:30

标签: git githooks pre-commit

我在我的工作目录中保存了我的git log的文本文件,并且我有一个脚本在提交后更新它。这很好,但是这样做的结果是repo中的版本总是一个提交。

是否可以编写一个预调用钩子来调用脚本并将文件添加到repo中,实际上保存了日志的文本版本,其中包含当前的提交信息?

我是git hooks的新手,并且不知道这是怎么回事,如果有可能的话。我很感激帮助!

2 个答案:

答案 0 :(得分:3)

简答:不。日志包含提交的SHA1,这取决于提交的内容。如果您更改了日志,则会更改提交,但它仍然无效。

我想知道你为什么要这样做,真的。在存储库中,git logcat saved-git-log一样好。如果您希望将此作为更新日志,对于已发布的版本,只需将其创建为构建/部署过程的一部分,例如:

tarname=my-project-$(git describe HEAD).tar
git log > changelog.txt
git archive --format=tar HEAD > $tarname
tar -Af $tarname changelot.txt
gzip $tarname

答案 1 :(得分:1)

我只是从Bitbucket / Github上的RSS提要中提取完整日志。这似乎是实现你所要求的最简单的方法,尤其是在使用Heroku时。