Git 标记结帐和 git 挂钩
Git tag checkout and git hook
该应用程序是用 angular 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 标记保持同步。
如果有办法用 git 钩子做到这一点。我也会接受的。但请提供示例。
这将允许用户获取文件的最新版本而不是缓存版本,并防止用户手动清除缓存以进行更改。
只是想让你知道我正在使用 bitbucket。
如果你知道要更新哪些文件,你可以给它们关联一个污点content filter driver, using .gitattributes declaration。
(图片来自“Customizing Git - Git Attributes", from "Pro Git book”)
我们的想法是在结帐时应用过滤器,在您的情况下,这将是一个简单的 sed
(将占位符 %tag%
替换为 git describe --abbrev=0 --tags
to get the latest tag 的内容)
服务器上 repo 的本地配置中的过滤器声明看起来像
[filter "replaceTag"]
smudge = sed \"s/%tag%/`git describe --abbrev=0 --tags`/g\"
该应用程序是用 angular 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 标记保持同步。 如果有办法用 git 钩子做到这一点。我也会接受的。但请提供示例。 这将允许用户获取文件的最新版本而不是缓存版本,并防止用户手动清除缓存以进行更改。 只是想让你知道我正在使用 bitbucket。
如果你知道要更新哪些文件,你可以给它们关联一个污点content filter driver, using .gitattributes declaration。
(图片来自“Customizing Git - Git Attributes", from "Pro Git book”)
我们的想法是在结帐时应用过滤器,在您的情况下,这将是一个简单的 sed
(将占位符 %tag%
替换为 git describe --abbrev=0 --tags
to get the latest tag 的内容)
服务器上 repo 的本地配置中的过滤器声明看起来像
[filter "replaceTag"]
smudge = sed \"s/%tag%/`git describe --abbrev=0 --tags`/g\"