0

我刚刚加入了一个项目,该项目有一个在没有 git 的情况下运行了一年的实时服务器。过去,所有者/开发人员亲自进行所有代码更新,没有版本跟踪。然后他开始使用 git(使用 gitlab 帐户)来跟踪他的更改(但不用于将更改推送到服务器。)所以在我到达那里之前,经理将站点的副本添加到 gitlab,并开始创建问题和功能分支. 现在,他想开始使用 git 将代码更改推送到生产服务器。我们有两个问题:

  1. 实时生产服务器文件夹不包含 git 存储库。
  2. 启动 gitlab repo 后,修改了实时生产服务器文件夹中的一些文件以修复错误。

我需要在实时生产服务器文件夹中添加一个 git 存储库,合并所有实时和远程代码,并在不破坏站点的情况下推送一个生产分支(包含所有功能和生产错误修复)。

到目前为止,这是我的程序:

  1. 创建实时生产服务器文件夹的副本。
  2. 将 .gitignore 文件从 gitlab 复制到新文件夹。
  3. 在那个新文件夹中初始化一个 git repo。
  4. 设置一个遥控器,指向 gitlab。
  5. 添加并提交并将该分支推送到 gitlab。
  6. 比较文件(在 gitlab 中推送的分支和主开发分支之间。)
  7. 在 gitlab 中创建一个包含所有修复和更新的最新生产分支。
  8. 将 .gitignore 文件复制到实时生产服务器文件夹。
  9. 在实时生产服务器文件夹中初始化一个 git repo。
  10. 添加并提交
  11. 在 gitlab 中签出并跟踪生产分支。

请告诉我此程序是否有效,让我知道是否应该更改其中任何一个。另外,我怎样才能最大限度地减少中断生产的变化?我应该注意哪些潜在问题?

在这种情况下,让现场站点在白天停机一两分钟不是问题,但我仍然希望有一些好的说明可以最大限度地减少停机时间。

编辑 =================

我目前正在进行第 5 步。我创建了复制文件夹以限制在实时生产服务器文件夹上执行的操作。我想限制对实时生产服务器文件夹的更改,以降低我们意外破坏生产站点的风险。在最终确定的方向中,可能不需要创建额外的文件夹。(或者是吗?)

4

1 回答 1

0

您无需在第 9 步中再次初始化。您只需从 Gitlab 签出正确的分支(您在第 7 行中创建的分支)即可。

也可能不需要 8,因为您已经从 repo 中获得了一个有效的 gitignore 文件。也不需要第 10 步和第 11 步,因为您已经在第 9 步中签出了正确的版本。

编辑:最好总是使用发布分支来推动生产。

请参阅此链接以了解要使用的良好分支策略: https ://nvie.com/posts/a-successful-git-branching-model/

于 2020-09-11T16:46:08.043 回答