我想知道是否有办法自动编辑推送到git服务器的文件。
情景:
1)我在本地编辑文档。我做了一些提交。完成后,我将更改推送到远程服务器。
2)服务器接收更改并编辑文档,并填写有关上次编辑的人员以及日期和时间的内部信息。
我找到了钩子,这将是完美的,但我看到了一个问题。如果我提交localy,则从文件计算SHA代码。如果服务器在推送后对其进行更改,则会变得不一致,因为SHA会有所不同。
问题是,我需要在服务器上进行这些更改,这是实施这种策略的唯一方法。
答案 0 :(得分:1)
"正确的git"这里的答案是"不要这样做"。如您所述,除非您希望使用每个已接受提交的信息生成自动提交,否则服务器无法进行此更改。
执行大多数问题的方法是在本地设置pre-commit hooks以在提交之前添加信息(日期和用户名),从而最终确定其SHA哈希值。缺点是,据我所知,每个本地克隆的存储库必须单独设置此挂钩。
然后,您可以在服务器上设置pre-receive hook,以确保只能提升包含此必需信息的提交。
也许其他实现目标的方法不那么麻烦?正如@Zeeker所指出的那样,信息已经存在于提交对象中,因此在repo历史日志中 - 或许只是教育repo用户如何找到这些数据就足够了? (这也是一个很好的机会来介绍像git blame这样的东西!)或者,你可以有一个脚本收集所有提交作者/日期并将它们输入到文件中并进行提交,然后你就可以了。 ; d在发布之前每周/每月/运行一次。