Git标签结帐和git hook

时间:2017-06-28 02:15:24

标签: git githooks git-tag

应用程序是用角度js编写的。我希望能够将ver = {%tag%}更新为ver = v1,其中v1是git标记。

例如在像这样的索引文件中。

<script src="js/controllers/AController.js?ver={%tag%}"></script>
<script src="js/controllers/BController.js"?ver={%tag%}></script>

我想在签出生产中的标签时实现此功能。这样我就不必手动更新每个文件的版本号以与git tag保持同步。 如果有办法用git hook做到这一点。我也会接受。但请提供示例。 这将允许用户获取最新版本的文件而不是缓存版本,并将阻止用户手动清除缓存以进行更改。 只是为了让你知道我正在使用bitbucket。

1 个答案:

答案 0 :(得分:2)

如果您知道要更新哪些文件,可以使用content filter driver将污点与 .gitattributes declaration 相关联。

smudge
(图片来自&#34; Customizing Git - Git Attributes&#34;,来自&#34; Pro Git book&#34;)

我们的想法是在结帐时应用过滤器,在您的情况下,该过滤器只是sed(用git describe --abbrev=0 --tags to get the latest tag的内容替换占位符%tag%

服务器上repo的本地配置中的过滤器声明看起来像

[filter "replaceTag"]
        smudge = sed \"s/%tag%/`git describe --abbrev=0 --tags`/g\"