2012-08-04 85 views
8

我们有一个在生产和登台服务器上运行的大型rails项目。每次部署到舞台或制作时,创建标签是一个不错的主意(这会在capistrano自动发生)。或者最好创建名为“开发”和“分期”的分支,(主要包含生产状态)?标签vs git中的分支

回答

1

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

5

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

1

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

deployment_stag_20120804 
deployment_stag_20120823 
deployment_prod_20120715 
deployment_prod_20120724 

如果您想避免大量标签,您可以让您的脚本仅为最后N个部署保留标签。

如果您的部署方法是将合并到生产分支(git钩子可能会触发prod服务器上的拉动),则分支更有意义。