在git push时更新项目版本号

15

我有一个托管在Github上的项目,希望能够设置一个版本号,并且只有当主分支直接进行推送或通过合并的Pull Request更新时,该版本号才会被更新。

是否有任何方法让Git/Bitbucket更新特定文件中的特定数字?如果只有一个专门用于此目的的文件包含一个单一数字也可以。我假设我将能够编写代码,在查询我的项目使用的版本号时,将简单地读取该文件。我的项目是一个C# Web API项目,但我不确定这是否很重要。

1个回答

6

有没有办法让git/Bitbucket更新特定文件中的特定数字?

不是在仓库中跟踪的文件,因为它将成为另一个提交的一部分。
正如“如何为Git存储库启用标识字符串?”中所解释的那样,这是一个更好留给构建系统(生成构建信息)完成的任务,而不是某种钩子/内容过滤器

任何代码库托管服务都可以使用Webhooks(GitHubBitBucket)来附加某种进程到事件上(例如git push),但这些进程将在客户端执行(客户端监听所述Webhook生成的JSON有效负载 ):GitHub/BitBucket服务器上没有执行任何操作(除了BitBucket brokers,主要用于与其他第三方服务通信)。

然而,一种可能有效的方法是使用提交后钩子(在推送之前在客户端执行):

这样,每个提交都会更新一个关于该提交的git notes,内容是git describe的内容。

使用git notes的好处是它们不会改变与仓库相关联的SHA1,这意味着您可以在提交之后添加它们。
然后,您可以将这些注释推送到GitHub并查看它们

git push origin refs/notes/*

通过Matthew McCullough的 "Git Notes and GitHub ",了解更多相关编程内容。


听起来很合理。我正在使用Jenkins,因此我将调查是否存在可以处理此事的作业。 - dabs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接