4

我在一个由 4 名其他开发人员组成的团队中,我们正在学习 GIT,并使用 gitflow 模型和 github 作为中央存储库。到目前为止,我们已经在 github 上创建了中央存储库,我们可以创建功能,将它们推送到中央存储库并从那里拉取以获取彼此的更改。

所有开发人员都在他们的本地机器上工作,但是我们设置了 3 个服务器 - 开发、登台和生产。

开发是每个人都可以查看彼此变化的地方,一旦我们感到高兴,我们将转移到登台。在我们最终使网站投入生产之前,将在这里进行测试以确保一切正常。

该网站目前已经完成,我们已经在开发服务器上克隆了存储库并提取了所有网站文件,以便我们可以看到那里的所有更改。但是,我们现在不确定是否应该部署到登台并最终部署到生产中。

  1. 我们是否首先在本地创建一个发布分支并推送到中央仓库?
  2. 我们是否在登台和生产服务器上克隆中央仓库?
  3. 如果是这样,我们是从中央仓库中提取还是不应该在生产服务器上使用 GIT?我读过关于使用 rsync 和钩子的信息?!

如果有人可以请解释接下来的步骤,或者将我指向某个解释它的地方,这将非常有帮助。

谢谢

4

1 回答 1

4

我会安排一个人负责部署到不同的服务器,尤其是登台和生产。这样,当您创建发布分支时,该分支将部署在登台服务器上。发布分支完成后,您将主分支部署到生产服务器。

您可以将 repo 克隆到暂存和生产,只需确保 .git 目录具有适当的安全性(.htaccess 是您的朋友 :)),这样非开发人员就无法访问该目录。

我会在生产服务器上使用 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
于 2012-11-16T14:32:53.197 回答