问题描述
我刚加入一个项目,该项目的实时服务器运行了一年,没有git。过去,所有者/开发人员亲自进行了所有代码更新,而没有版本跟踪。然后,他开始使用git(带有gitlab帐户)来跟踪他的更改(而不是将更改推送到服务器。)因此,在我到达那里之前,经理将站点的副本添加到gitlab,并开始创建问题和功能分支。现在,他想开始使用git将代码更改推送到生产服务器。我们有两个问题:
我需要将git repo添加到实时生产服务器文件夹中,合并实时和远程上的所有代码,并在不破坏站点的情况下推送生产分支(具有所有功能和生产错误修复)。 / p>
到目前为止,这是我的程序:
- 创建实时生产服务器文件夹的副本。
- 将.gitignore文件从gitlab复制到新文件夹。
- 在该新文件夹中创建一个git repo。
- 设置一个指向gitlab的遥控器。
- 添加并提交并将该分支推送到gitlab。
- 比较文件(在gitlab中的推入分支和主dev分支之间。)
- 在gitlab中创建具有所有修复和更新的最新生产分支。
- 将.gitignore文件复制到实时生产服务器文件夹中。
- 在实时生产服务器文件夹中启动一个git repo。
- 添加并提交
- 在gitlab中检出并跟踪生产分支。
请告诉我此程序是否有效,请告诉我是否应更改其中任何一个。另外,如何最大程度地减少生产中断的变化?我应该注意哪些潜在问题?
在这种情况下,白天关闭实时站点一两分钟不是问题,但是我仍然希望获得一些好的指导,以最大程度地减少停机时间。
编辑===============
我当前处于第5步。我创建了复制文件夹,以限制对实时生产服务器文件夹执行的操作。我想限制对实时生产服务器文件夹的更改,以减少意外破坏生产站点的风险。按照最终指示,可能无需创建额外的文件夹。 (或者是吗?)
解决方法
您无需在步骤9中再次进行初始化。您只需要从Gitlab检出正确的分支(在第7行中创建的分支)即可。
也可能不需要8,因为您已经从存储库中获得了有效的gitignore文件。也不需要步骤10和11,因为您已经在步骤9中检出了正确的版本。
编辑:最好始终使用发布分支来推送到生产环境。
请参阅此链接,以获得使用的良好分支策略: https://nvie.com/posts/a-successful-git-branching-model/