如何使用git设置测试环境?

如何使用git设置测试环境?,git,Git,我需要最佳git设置实践,以适应以下情况: 我目前正在从事一个Laravel项目,我们现在称之为core,它有两个实现(称为project\u 1,project\u 2)。这两个实现共享相同的核心。不同之处在于模型、控制器、请求、路由等 第一次尝试 我设置了3个文件夹,一个叫做core,一个叫做project\u 1,一个叫做project\u 2。core只有在两个项目中共享的公共文件。core中没有型号和控制器。每次我对core进行更改时,我都可以轻松地推进到任何一个项目。然而,问题是,

我需要最佳git设置实践,以适应以下情况:

我目前正在从事一个Laravel项目,我们现在称之为
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
  • 每次切换分支时;文件系统将只反映在该分支中跟踪的文件(当然,任何联合国文件)