git - 将 Git 用于客户的软件

标签 git

我希望收集一些有关使用 Git 作为管理公司和客户环境的方法的信息。那就有点罗嗦了。

几十年来,我们一直在手动设置客户环境,但正在寻求自动化一些流程并确保每个人都受到版本控制。此后,我们为此目的建立了一些存储库和 Jenkins 构建机器。我很好奇如何继续前进。所有客户是否都应该位于同一存储库中,但基于各种因素位于存储库的不同分支上?

对于一百个左右的客户,每个客户都有自己的存储库或分支可能有点矫枉过正。我最初的想法是,由于所有程序(减去数据和配置文件)都保存在版本控制范围内,因此我们的软件的几个不同版本将有一个分支。例如,这些可能是 Alpha、Beta 等。在更改被认为是稳定后,我怀疑分支将被 merge (Alpha 到 Beta)或更改列表将被精心挑选。虽然这看起来好像是一个非常麻烦的过程。

非常感谢任何阅读 Material 。我居然找到了this ,第一个答案对于我们 future 的测试和部署建模非常有帮助。

最佳答案

一般来说,分支多用于以下情况之一:

  1. 分支最终将 merge 在一起(例如本地开发分支)
  2. 预计分支不会非常活跃,最终会消亡(例如,用于发布和修复一些错误的分支)

如果您要求的话,您可以使用分支来长期管理多个类似的配置,但我认为它不太可维护。特别是,如果您有许多客户(分支机构)需要跟踪。

不幸的是,我不太了解您的具体问题,但似乎每个客户都应该获得一个单独的存储库。但是,如果客户之间存在共享配置,则可能有更好的方法来对问题进行建模(而不是在每个存储库中复制共享配置,或使用分支)。

关于git - 将 Git 用于客户的软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069376/

相关文章:

regex - git 使用什么风格的正则表达式

git - Heroku 管道升级 - pull 到存储库

git - 用我的存储库覆盖远程 git 存储库

git - 什么是 ClearCase 劫持的 Git 等价物?

git - 如何区分git标签和分支

git - mux_client_request_session : session request failed: Session open refused by peer

git - 部署 sails.js 应用程序的最佳方法是什么?

git - 如何获取 Git 中当前提交的哈希值?

linux - 如何在 git 中默认设置 --quiet 标志?

git - 快进 merge 是不可能的。要 merge 此请求,首先在本地重新设置基准