管理分支机构进行自托管回购和测试

时间:2018-08-27 23:49:28

标签: git version-control self-hosting

我知道这听起来不太清楚,但是我仍然感到困惑。我正在阅读Git电子书,但不确定100%我是否完全理解它。如果有人觉得缺少信息,请告诉我,以便我补充。


从前一周开始,我们现在已经建立了一个自托管的git repo和服务器。此存储库是主存储库,它是暂存环境中当前使用的存储库。从这里开始,我们准备就绪后便手动重新部署到生产中。

现在(以及过去的情况),要进行更改,某人只需访问“文件”,然后在其所在的服务器上进行所需的更改。用户有很多实例可以节省彼此的工作,很多事情都会丢失。

我们要做什么:从该主服务器创建分支以使人们可以在上面编写代码,但是如果这些分支可以本地存储在用户机器上,而不是存储在主仓库所在的测试服务器上,那将是理想的选择。

>

对于测试代码:这样做的方式是什么?将更改后的文件从本地分支推送到主节点,然后在那里尝试吗?实际上是在服务器上创建多个分支,而是在本地切换到那些分支吗?

不能单独测试代码,因此无论如何都需要将其添加到主版本/部署版本中。

我的任务是为我们的环境设置git,所以我希望使它尽可能简单而直接。

1 个答案:

答案 0 :(得分:2)

刚开始时,Git和版本控制可能会造成混乱,因此,我将尝试分别回答您问题中的特定要点:

  

[..]进行更改,有人只需访问文件并在服务器上进行所需的更改[...]

您肯定要停止将文件直接写入生产服务器上的磁盘。理想情况下,您需要做的是通过持续集成服务器(例如 Jenkins TeamCity )自动处理部署。

  

[...]如果分支可以本地存储在用户计算机上,而不是存储在主仓库为[...] 的测试服务器上”

这就是Git和版本控制的重点。您可以将文件托管在Git仓库中,并让每个开发人员克隆仓库的本地副本(git clone。这样一来,他们就可以在pull偶尔origin的情况下push来处理自己的代码。然后,他们会在代码完成后将origin的更改退回到master

  

我们要做什么:从该主服务器创建分支以使人们可以在其上编写代码。”

您在这里询问 Git Flow 。您应该在develop的分支中创建一个单个分支,称为feature,而在develop的分支分支中,每个分支都从{{1 }}。单个功能完成后,应将其合并回develop

Git Flow (simple)

应该连接develop分支(最好通过CI),以将其部署到您的开发和测试环境中。每当发生更改时,您都希望将develop部署到开发服务器。

  

用于测试代码:怎么做?”   

  “ 代码无法单独进行测试,因此无论如何都需要将其添加到主版本/部署版本中。

您要在 develop 上进行测试。当候选发布版本中的所有功能(最终希望将其部署到生产中的更改组)完成时,您将需要将develop分支部署到测试环境。在这里,您可以测试develop的此版本,而其他开发人员可以将develop的更高版本推送到开发环境中-测试环境不会得到更新。

对测试环境的测试感到满意后,当您要将代码部署到生产环境时,可以最终develop合并回master(最好是利用release分支(如果您正在处理正确的发布时间表)。然后master已连接到您的生产环境。


通过Git Flow,您将仅在经过全面测试后将代码部署到master,因此未经测试的代码将永远不会投入生产。