Git 新数据库的最佳实践
Git best practice with new database
关于 Git 最佳实践的问题。在制作项目的主要新版本时(在我的例子中是一个 Codeigniter 项目),我面临两个选择:
创建一个新分支(例如branch version2
)
创建现有项目文件夹的副本并使其成为新的 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 最佳实践时,我想分享您的一些观点。
- 所有文件都应存在于 Git 存储库中(目前,您的数据库配置文件未存储在 GIT 存储库中)
- 未使用分支工作流程(您目前没有遵循任何分支工作流程,这是不正确的)
解决方案:
- Git 应该包含所有文件(甚至你的数据库文件)
- 应使用功能分支工作流。
功能分支工作流程为您的两个问题提供了解决方案,您可以在其中创建新的发布分支并将其部署到 N1 服务器,并将分支 2 发布到具有不同数据库的 N2 服务器。
另外,由于使用了 CodeIgnitor,您可以定义 N 个环境并在其中指定您的设置。这将帮助您为不同的 servers/environments.
指定不同的数据库
关于 Git 最佳实践的问题。在制作项目的主要新版本时(在我的例子中是一个 Codeigniter 项目),我面临两个选择:
创建一个新分支(例如
branch version2
)创建现有项目文件夹的副本并使其成为新的 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 最佳实践时,我想分享您的一些观点。
- 所有文件都应存在于 Git 存储库中(目前,您的数据库配置文件未存储在 GIT 存储库中)
- 未使用分支工作流程(您目前没有遵循任何分支工作流程,这是不正确的)
解决方案:
- Git 应该包含所有文件(甚至你的数据库文件)
- 应使用功能分支工作流。
功能分支工作流程为您的两个问题提供了解决方案,您可以在其中创建新的发布分支并将其部署到 N1 服务器,并将分支 2 发布到具有不同数据库的 N2 服务器。
另外,由于使用了 CodeIgnitor,您可以定义 N 个环境并在其中指定您的设置。这将帮助您为不同的 servers/environments.
指定不同的数据库