Git 新数据库的最佳实践

Git best practice with new database

关于 Git 最佳实践的问题。在制作项目的主要新版本时(在我的例子中是一个 Codeigniter 项目),我面临两个选择:

  1. 创建一个新分支(例如branch version2

  2. 创建现有项目文件夹的副本并使其成为新的 git 项目。

1 的优点):version1 分支的开发可能正在进行,因此在最后合并它们会更容易。

1) 的缺点(以及 2)的优点):version2 将使用全新的数据库,并且(首先)将托管在不同的登台服务器上。由于我的 config 文件不是存储库的一部分,每次我想在分支之间切换时,我都必须手动编辑数据库 config 文件。

您可能应该创建一个新分支,如果您不想每次都手动编辑数据库配置文件,您可以多次克隆您的项目。因此,合并这两个版本可能比解决方案 2) 更容易。

如果您正在使用 Github/Bitbucket/VisualstudioOnline 或任何其他类似的服务,我会使用 Forking 而不是分支,提到了分支和分支之间的区别 in this SO's question 但重要的是要说明这几点这里的东西:

  • 如果您使用的是版本 2,您将无法将更改直接推送到版本 1 存储库,但您需要创建一个 new Pull request.
  • 为了使版本 2 存储库与原始存储库保持同步,您需要将原始存储库添加为本地存储库中的附加远程存储库,或者使用 Github sync tool.

在您谈论 GIT 最佳实践时,我想分享您的一些观点。

  1. 所有文件都应存在于 Git 存储库中(目前,您的数据库配置文件未存储在 GIT 存储库中)
  2. 未使用分支工作流程(您目前没有遵循任何分支工作流程,这是不正确的)

解决方案:

  1. Git 应该包含所有文件(甚至你的数据库文件)
  2. 应使用功能分支工作流。

功能分支工作流程为您的两个问题提供了解决方案,您可以在其中创建新的发布分支并将其部署到 N1 服务器,并将分支 2 发布到具有不同数据库的 N2 服务器。

另外,由于使用了 CodeIgnitor,您可以定义 N 个环境并在其中指定您的设置。这将帮助您为不同的 servers/environments.

指定不同的数据库