2014-09-11 94 views
0

我希望git在将文件推送到服务器时创建版本号。我从搜索中发现,您可以使用预先接收钩子配置。有人可以提供预先接受的钩子吗?在推送期间在服务器上创建git版本号

这个钩子应该是本地的还是在服务器端?

+0

*预接收*钩子是严格基于远程存储库。你可以用各种语言编写钩子,比如ruby,python或bash(以及更多)。只需选择您最熟悉的语言并搜索示例,就会发现各种与谷歌。 – 2014-09-11 12:17:54

回答

0

它应该在服务器中。我建议你在你的情况下使用update挂钩。

更新脚本是非常相似的前收到剧本,但 ,它的每个分支的推送者更新运行一次。如果 推送者试图推送到多个分支,则预接收仅运行 一次,而更新对他们推送到的每个分支运行一次。

您可以从样品中的混帐回购协议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