如何编程git在提交之前做一些事情



我一直在看git钩子,但还没能弄清楚:当用户向我的git仓库提交一个文件时,我想自动更新repo中的另一个文件,并将这些更改添加到同一个提交中,并根据提交消息运行一些命令。有办法做到这一点吗?pre-commit git钩子似乎在提交消息产生之前就运行了。

可以做到这一点,使用prepare-commit-msg钩子…但不要。它很困难而且容易出错,对于熟悉Git但不熟悉您的特定项目的人来说,它会有些令人惊讶。(那个人可能是几年后的你,你自己:我知道这一点,因为它发生在我身上。:-)不是特别针对Git,但基本上是相同的问题:我想出了一个短期的hack,并把它留在原地,很久以后,当一些错误行为出现时,我感到震惊,只是将其追溯到我自己的短期hack。

相反,写一个小脚本来做你想做的一切,包括运行git commit,并留下未来的维护者(可能是你自己)关于如何运行这个小脚本的说明。然后,您可以将该脚本包含在项目的Git存储库中,以便每个人都拥有它。

最新更新