【问题标题】:tags vs branches in git [closed]git中的标签与分支[关闭]
【发布时间】:2012-08-02 04:44:23
【问题描述】:

我们有一个在生产和登台服务器上运行的大型 Rails 项目。每次我们部署到登台或生产时创建标签是个好主意吗(这会在 capistrano 中自动发生)。还是创建名为“devlopment”和“staging”的分支更好,(master 将包含生产状态)?

【问题讨论】:

    标签: git deployment tags branch capistrano


    【解决方案1】:

    git 中的标签非常长寿:当您从远程存储库中获取时,它们会自动传播,如果您想清理它们,您必须在每个副本中手动清理它们。因此,我宁愿使用分支(可能还有它们的 reflogs)来标记自动部署,否则我可能很快就会被埋在很多标签中。

    【讨论】:

      【解决方案2】:

      我们标记每个部署(自动在我们的部署脚本中)以便在需要时快速恢复,但它们也可以作为部署历史派上用场。例如:

      deployment_stag_20120804
      deployment_stag_20120823
      deployment_prod_20120715
      deployment_prod_20120724
      

      如果你想避免大量的标签,你可以让你的脚本只保留最后 N 次部署的标签。

      如果您的部署方法是合并到生产分支中,则分支更有意义,例如,git 挂钩可能会触发对产品服务器的拉取。

      【讨论】:

        【解决方案3】:

        您可以使用分支进行开发、登台和生产,同时使用标签来识别生产版本。我喜欢git flow 处理这些分支的方式,使您能够使用更多分支来开发新功能。作为开发人员,您永远不必将代码提交到 master 分支,并且合并到 master 分支也很少见。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-02
          • 1970-01-01
          • 2013-06-30
          • 2012-04-26
          • 2018-11-27
          相关资源
          最近更新 更多