如何在正在运行的生产服务器上初始化git并从远程仓库进行更新

问题描述

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

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

我需要将git repo添加到实时生产服务器文件夹中,合并实时和远程上的所有代码,并在不破坏站点的情况下推送生产分支(具有所有功能和生产错误修复)。 / p>

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

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

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

在这种情况下,白天关闭实时站点一两分钟不是问题,但是我仍然希望获得一些好的指导,以最大程度地减少停机时间。

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

我当前处于第5步。我创建了复制文件夹,以限制对实时生产服务器文件夹执行的操作。我想限制对实时生产服务器文件夹的更改,以减少意外破坏生产站点的风险。按照最终指示,可能无需创建额外的文件夹。 (或者是吗?)

解决方法

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

也可能不需要8,因为您已经从存储库中获得了有效的gitignore文件。也不需要步骤10和11,因为您已经在步骤9中检出了正确的版本。

编辑:最好始终使用发布分支来推送到生产环境。

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