如何使用git设置测试环境?
我需要最佳git设置实践,以适应以下情况: 我目前正在从事一个Laravel项目,我们现在称之为如何使用git设置测试环境?,git,Git,我需要最佳git设置实践,以适应以下情况: 我目前正在从事一个Laravel项目,我们现在称之为core,它有两个实现(称为project\u 1,project\u 2)。这两个实现共享相同的核心。不同之处在于模型、控制器、请求、路由等 第一次尝试 我设置了3个文件夹,一个叫做core,一个叫做project\u 1,一个叫做project\u 2。core只有在两个项目中共享的公共文件。core中没有型号和控制器。每次我对core进行更改时,我都可以轻松地推进到任何一个项目。然而,问题是,
core
,它有两个实现(称为project\u 1
,project\u 2
)。这两个实现共享相同的核心。不同之处在于模型、控制器、请求、路由等
第一次尝试
我设置了3个文件夹,一个叫做core
,一个叫做project\u 1
,一个叫做project\u 2
。core
只有在两个项目中共享的公共文件。core
中没有型号和控制器。每次我对core进行更改时,我都可以轻松地推进到任何一个项目。然而,问题是,由于核心没有任何模型、控制器…,因此我无法进行任何测试
第二次尝试
所以后来,我从core
创建了一个test
项目,模型和控制器都是从project_2
复制的。并将这些文件添加到.git/info/exclude
中,然后git rm--cached file
中的每个文件。但问题是,当推或拉时,这些文件也会在project_2
中被删除
我想要实现的目标
我想要一个设置,我可以轻松地扭曲和测试test
project中的代码,然后只将core
中的代码推送到project\u 1
和project\u 2
您需要使用分支
分支包含从存储库基本分支中的特定点开始的单独更改历史记录;调用主控
检查分支机构;将仅将目录切换到该分支中跟踪的那些文件
你可以在网上找到许多不同的分支策略。例如,描述要素分支工作流
在您的情况下,您应该尝试一些简单的方法:
创建您的存储库
仅添加所有环境通用的文件。我假设这是“核心”;并提交您的更改
使用git checkout-b project\u 1为项目1创建分支
您将在此处添加core中的所有文件
正常工作时,您创建/添加/编辑的任何文件将仅在project_1分支中跟踪,不会影响“核心”(或主分支)
如果要创建测试环境,请测试project 1正在执行的任何操作:
从主分支创建一个名为test_project_1的新分支
合并项目1分公司;使用git合并项目1
做你的测试
如果你发现一个错误;切换回项目1<代码>git签出项目\u 1
为该bug修复创建一个新分支,例如git checkout-b project\u 1\u bugfix\u 1
修正错误,一旦完成;您可以签出它并在测试分支上进行测试(git checkout test\u project\u 1;git merge test\u project\u 1\u bugfix\u 1
)
一旦确认错误已修复,您应该将更改合并回主项目1
分支;使用git checkout-b项目1;git合并项目\u 1\u错误修复\u 1
现在,如果需要,可以删除错误修复分支;使用git分支-d项目\u 1\u bug修复\u 1
每次切换分支时;文件系统将只反映在该分支中跟踪的文件(当然,任何未跟踪的文件都将保持原样)
如果我在test_project_1分支中发现core中有一个bug呢?怎么
我该修吗?我应该在test_project_1分支中修复它吗
切换到核心(您的主分支)
创建一个分支来实现错误修复
解决这个问题
测试它(与测试任何其他分支的方法相同)
将错误修复分支合并回主分支
切换到测试项目1
来自师父
你需要使用分支
分支包含从存储库基本分支中的特定点开始的单独更改历史记录;调用主控
检查分支机构;将仅将目录切换到该分支中跟踪的那些文件
你可以在网上找到许多不同的分支策略。例如,描述要素分支工作流
在您的情况下,您应该尝试一些简单的方法:
创建您的存储库
仅添加所有环境通用的文件。我假设这是“核心”;并提交您的更改
使用git checkout-b project\u 1为项目1创建分支
您将在此处添加core中的所有文件
正常工作时,您创建/添加/编辑的任何文件将仅在project_1分支中跟踪,不会影响“核心”(或主分支)
如果要创建测试环境,请测试project 1正在执行的任何操作:
从主分支创建一个名为test_project_1的新分支
合并项目1分公司;使用git合并项目1
做你的测试
如果你发现一个错误;切换回项目1<代码>git签出项目\u 1
为该bug修复创建一个新分支,例如git checkout-b project\u 1\u bugfix\u 1
修正错误,一旦完成;您可以签出它并在测试分支上进行测试(git checkout test\u project\u 1;git merge test\u project\u 1\u bugfix\u 1
)
一旦确认错误已修复,您应该将更改合并回主项目1
分支;使用git checkout-b项目1;git合并项目\u 1\u错误修复\u 1
现在,如果需要,可以删除错误修复分支;使用git分支-d项目\u 1\u bug修复\u 1
每次切换分支时;文件系统将只反映在该分支中跟踪的文件(当然,任何联合国文件)