在你的第一个问题中:
我们如何避免“无用”的CI提交,这些提交只是增加了版本号?
请注意:持续集成(CI)是一种开发实践,通过自动化构建验证每个check-in
,使团队能够及早发现问题。
话虽如此,在这里想表达的是:
简单来说,只有在有新提交时,CI服务器才应该增强版本,以确保每个代码提交都可以发布。
看起来像是OP所说的,在你的区域里有更多(正如你所说)来自CI服务器
的“无用”的commits
。
基于您的CI机制,我希望您应该/必须能够控制它,几乎每个我们使用的工具都有处理方式(例如:Bitbucket中的Webhooks、版本插件等)。
因此,确保只有在新提交后我们才有一个新版本。
现在,如果您正在考虑那些定期夜间集成构建,则请阅读以下内容:
许多组织会按时间表定期进行构建,例如每晚。 这不同于持续构建,并且对于持续集成来说不足够。持续集成的整个重点是尽早发现问题。每晚构建意味着错误在被发现之前会被忽略一整天。一旦它们在系统中存在那么长时间,就需要很长时间才能找到并删除它们。
此外,您已经提到:通过CI的每个提交都是一个新版本,因此在某种程度上您已经实现了真正的CI。
尽管如此,如果您仍然不知道如何避免版本号的“无用”提交,那么我建议您添加另一个问题,详细说明您的CI机制是如何工作的以及为什么在给定条件下很难。我敢打赌一定有解决方案。还可以查看
GithubFlowVsGitFlow。
来源:
Martin fowler's white paper on CI
如何避免在源代码中保留版本号?
关于这个问题,我想扩展一下@void的答案,因为他说了这样一句话:
It is a common practice to keep a version number in the source code, there is nothing wrong in that.
有些项目必须知道已部署的确切版本(由于某些重要原因),在这种情况下,它们会在源代码中保留版本,并使用HTTP GET API从部署的代码中获取(一种方法)以了解当前在X服务器上部署的版本。
然而,这更多地取决于需求,假设对于另一个项目不存在这种情况,则建议保持版本的方法是使用每个成功的CI构建的提交哈希/标记。
您可以在此处获得更多详细信息
here:
希望这可以帮助。
git commit --amend
将版本号的修改附加到上一个提交中呢? - Roll