在远程存储库中使用GIT的正确方法是什么?

时间:2018-08-24 18:58:01

标签: git version-control remote-server

我们有一个由3个程序员组成的团队,还有一个专用服务器,我们通过FTP客户端上传和下载文件。我们正在编辑大肠菌群,我立即想到了GIT。但是在我当前的设置中它将如何工作?见下文:

现在,我们在该服务器上有2个远程目录。一个是我们应用程序的生产环境,另一个是开发环境。我们编辑和添加新闻文件,在线对其进行测试,并在更新到期时将选定的文件移至生产环境。这很容易理解。

使用GIT,我如何分支存储库,进行所需的更改,仍然能够在同一服务器环境上对其进行测试?我认为GIT将分支到我的本地计算机。合并之前,我需要确保在相同的基础架构上进行测试。

非常感谢您的任何帮助,对于冗长的帖子,我们深表歉意。

2 个答案:

答案 0 :(得分:1)

服务器上远程回购的最佳常规做法是:

  • 裸仓库(意味着您没有FTP文件,您正在推送对它们的提交)
  • 独特(不需要两个存储库)
  • 带有一个后接收钩子,该钩子能够检测到被推动的分支(as I did here
  • 将{@ {1}}的原始回购内容添加到专用的工作树(as in here

这样,您有两个分支,每个分支被推送到远程服务器上的裸仓库,从而触发同一服务器上专用工作树的更新(每个分支一个)。
验证git checkout --force分支后,可以将其合并到dev分支,该分支将被推送到同一裸仓库,并触发目标工作树的更新。

答案 1 :(得分:1)

听起来像是Git的绝佳用例。要记住的一件事是Git是一个分布式版本控制系统。每个开发人员都有自己的存储库,您将需要建立一个集中的“原始”存储库,在将其发布到生产之前,您可以在其中共享工作。

下面的链接介绍了流行的工作流程:Gitflow。要记住的主要要点是,您需要标记源代码历史记录中的特定点以进行测试,然后仅在测试成功之后将这些更改合并到主版本中。

https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

建议的分支机构设置

以3人为一组简化Gitflow,您可能想从两个分支开始:每个要为其生成 builds 的环境的分支。

  • master =>构建已部署到生产环境
  • dev =>构建已部署到测试

样品更新步骤

下面的步骤概述了一种可能的发布到测试和生产环境的方法。

  • 将更改提交到dev并将其推送到原始位置
  • 开发完成后,用一个版本(例如dev)标记dev/1.0.0分支
  • 将其提交到您的测试环境并进行验证
  • 如果测试通过,则将dev/1.0.0合并到master,进行构建并将其部署到生产中
  • 如果测试失败,请按照上述步骤进行其他修复
  • 例如,您可能最终在下一次正式部署之前将dev/1.0.2合并到master中。
  • 当您投入生产时,请标记master/1.0.2,以便使其生效

通常,应该通过不直接涉及git的部署过程来更新生产环境。您将要设置一个构建,该构建从存储库中的特定标记版本部署代码。您可以将现有的FTP更新过程用于该部分。

阅读材料

这里有一些更多的入门指南。希望这会有所帮助!