使用 Github 部署的 Git 流程

标签 git deployment github release git-flow

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

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

开发是每个人都可以看到彼此变化的地方,一旦我们满意,我们就会转移到暂存阶段。在我们最终使网站投入生产之前,将在这里进行测试以确保一切正常。

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

  1. 我们是否先在本地创建一个发布分支然后推送到中央仓库?
  2. 我们是否在暂存和生产服务器上克隆中央存储库?
  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/

相关文章:

Java + gRPC : Error: A JNI error has occurred

git - 使用通配符过滤 git 分支

git - git -q pull 和 git pull 有什么区别?

python - 带有 .toml 配置和预提交钩子(Hook)的 Flakehell

Git 浅获取新标签

asp.net - 您是否预编译了网站,为什么/为什么不呢?

visual-studio-2010 - 使用 VSIX 为项目模板部署包含 IWizard 的程序集

Git 不断复制文件并在文件名末尾附加 ' 2'

git - DVCS如何帮助科学编程?

Github Windows 'Failed to sync this branch'