我在一个由其他 4 名开发人员组成的团队中,我们正在学习 GIT 并使用 gitflow 模型和 github 作为中央仓库。到目前为止,我们已经在 github 上创建了中央存储库,我们可以创建功能,将它们推送到中央存储库并从那里 pull 彼此的更改。
所有开发人员都在他们的本地机器上工作,但是我们有 3 个服务器设置 - 开发、暂存和生产。
开发是每个人都可以看到彼此变化的地方,一旦我们满意,我们就会转移到暂存阶段。在我们最终使网站投入生产之前,将在这里进行测试以确保一切正常。
该网站目前已经完成,我们已经在开发服务器上克隆了存储库并提取了所有网站文件,因此我们可以在那里看到所有更改。但是,我们现在不确定是否应该部署到暂存阶段并最终部署到生产环境。
- 我们是否先在本地创建一个发布分支然后推送到中央仓库?
- 我们是否在暂存和生产服务器上克隆中央存储库?
- 如果是这样,我们是从中央存储库中提取数据,还是不应该在生产服务器上使用 GIT?我读过有关使用 rsync 和 Hook 的信息?!
如果有人可以解释接下来的步骤或将我指向某个解释它的地方,那将非常有帮助。
谢谢
最佳答案
我会有一个人负责部署到不同的服务器,尤其是登台和生产。 这样,当您创建发布分支时,该分支将部署在登台服务器上。发布分支完成后,将主分支部署到生产服务器。
您可以将存储库克隆到暂存和生产环境,只需确保 .git 目录具有适当的安全性(.htaccess 是您的 friend :)),这样非开发人员就无法访问它目录。
我会在生产服务器上使用 git pull。我也读过 rsync 和 hooks,但 git 对我来说工作得很好。
现在有时当我为不允许在服务器上使用 git 的客户工作时,我使用 ftp。 github 上有一个名为 git-ftp 的 Pyhton 程序我对其进行了一些调整以适应 git-flow。我还没有把那个版本放在 github 上,也许我应该。
作为第一条评论的跟进
进行暂存和生产发布的人员将在他/她的本地计算机上执行以下步骤:
git flow release start -F 1.0
做一些工作,比如更新版本号 发布到github
git flow release publish 1.0
在登台服务器上:
git pull origin release/1.0
暂存期结束后,在本地机器上
git flow release finish 1.0
在生产服务器上
git pull origin master
关于使用 Github 部署的 Git 流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418266/