我有一个在Github上托管的项目,我想设置它以使项目有一个版本号,版本号只在更新主分支时更新,可以通过推送直接更新,也可以通过合并的Pull请求。
有没有办法让git / Bitbucket更新特定文件中的特定号码?如果只有一个专门用于此目的的文件,包含一个数字就可以了。我假设我能够编写代码,询问我的项目使用的版本,只会读取该文件。我的项目是一个C#Web API项目,虽然我不太确定这一点很重要。
答案 0 :(得分:6)
有没有办法让git / Bitbucket更新特定文件中的特定号码?
不是在回购中跟踪的文件,因为它将是另一个提交的一部分。
正如" How do I enable ident string for Git repos?"中所述,这是一项任务(生成构建信息),最好留给构建系统,而不是some kind of hook/content filter。
任何repo托管服务都可以有webhooks(GitHub,BitBucket),允许您将某种进程附加到事件(如git push),但这些进程将在客户端上执行side(客户端监听由所述webhook生成的JSON payload):GitHub / BitBucket服务器上没有执行任何操作(可能BitBucket brokers除外,主要是与其他第三方服务通信)。
可以工作的一种方式是使用以下方法提交挂钩(在推送之前在客户端上执行):
这样,每次提交都会更新所述提交的git notes
,内容为git describe
。
使用git notes的想法是他们不会更改与repo关联的SHA1,这意味着您可以在提交后添加。 然后,您可以push those notes to GitHub and see them。
git push origin refs/notes/*
使用" Git Notes and GitHub " Matthew McCullough。