我希望git在将文件推送到服务器时创建版本号。我从搜索中发现你可以使用预接收挂钩配置。有人可以提供预先接收的钩子吗?
这个钩子应该是本地的还是服务器?
答案 0 :(得分:0)
它应该在服务器中。我建议你在你的情况下使用update
钩子。
更新脚本与预接收脚本非常相似,除了 它为每个分支运行一次,推送器正在尝试更新。如果 推动者试图推进多个分支,预先接收运行 只有一次,而更新每个分支运行一次,他们正在推动。
您可以从git repo hooks/update.sample
中的示例开始,只需将其复制并重命名为update
即可。 Git会自动运行它。
您可以使用git diff
在推送的提交中更改文件,并为每个文件创建version numbers
,但我不确定您的version numbers
是什么意思。
git diff oldrev newrev --name-status -M
除了名为update
的用户之外,我碰巧编写了一个arc
钩子来防止除了来自任何用户的名为git-cc-robot
的分支之外的任何推送。您可以在此处找到代码https://github.com/landys/git-cc-robot/blob/master/scripts/githook/%20update-prevent_master.sh。