版本控制 – GitHub多个存储库与多个环境的分支

这可能是一个非常初学的问题,但我正在一个创业环境中的大型生产网站上工作.我刚刚开始使用Heroku,
Github和Ruby on Rails,因为与仅在本地进行更改和上传到服务器相比,我正在寻找更多的灵活性和版本控制.

我的问题可能非常明显,如果我应该为每个环境(开发,测试,登台,生产等)使用不同的存储库,或者仅使用主存储库和分支来处理新功能.

我最初的想法是创建多个存储库.例如,如果我添加一个新功能,如图像上传器,我会使用开发存储库中的代码.进行更改,并在整个过程中通过提交上传,以跟踪小的更改.一旦我在本地测试了它,我就想将它上传到测试存储库,只需一次提交,列出添加的功能(例如“将图像添加到帐户页面”).

我的想法是,这将允许在开发环境中对提交进行微观管理,而测试环境提交将更加关注错误修复等.

这在我看来是有道理的,因为当你在环境中向上移动时,你会删除无关的提交并专注于每个环境所需的内容.我还可以看到如何通过分支实现这一点,所以我正在寻找关于如何处理它的一些建议.优点和缺点,个人例子等

我已经看到了其他几个相关的问题,但它们似乎都没有触及我所拥有的相同问题.

提前致谢!

-Matt

最佳答案 使用不同的repos对分布式VCS有意义,我在下面提到了发布方面(推/拉):

>“How do you keep changes separate and isolated across multiple deployment environments in git?
>“Reasons for not working on the master branch in Git

管理不同环境的一个难点是配置文件,每个环境可以包含不同的值.

为此,我推荐content fiter driver

这有助于生成具有当前值的实际配置文件,具体取决于当前的部署环境.

点赞