我有一个托管在Github上的项目,希望能够设置一个版本号,并且只有当主分支直接进行推送或通过合并的Pull Request更新时,该版本号才会被更新。
是否有任何方法让Git/Bitbucket更新特定文件中的特定数字?如果只有一个专门用于此目的的文件包含一个单一数字也可以。我假设我将能够编写代码,在查询我的项目使用的版本号时,将简单地读取该文件。我的项目是一个C# Web API项目,但我不确定这是否很重要。
有没有办法让git/Bitbucket更新特定文件中的特定数字?
不是在仓库中跟踪的文件,因为它将成为另一个提交的一部分。
正如“如何为Git存储库启用标识字符串?”中所解释的那样,这是一个更好留给构建系统(生成构建信息)完成的任务,而不是某种钩子/内容过滤器。
然而,一种可能有效的方法是使用提交后钩子(在推送之前在客户端执行):
这样,每个提交都会更新一个关于该提交的git notes
,内容是git describe
的内容。
使用git notes的好处是它们不会改变与仓库相关联的SHA1,这意味着您可以在提交之后添加它们。
然后,您可以将这些注释推送到GitHub并查看它们。
git push origin refs/notes/*
通过Matthew McCullough的 "Git Notes and GitHub ",了解更多相关编程内容。