9

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

4

3 回答 3

7

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

于 2012-08-04T10:47:31.523 回答
2

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

deployment_stag_20120804
deployment_stag_20120823
deployment_prod_20120715
deployment_prod_20120724

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

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

于 2012-08-04T20:42:32.850 回答
1

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

于 2012-08-04T21:03:06.407 回答