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

时间:2015-09-07 07:54:34

标签: git

对于这样的情况,我需要最好的git设置练习:

enter image description here

我目前正在开发一个Laravel项目,我们暂时将其称为core,它有两个实现(称为project_1project_2)。这两个实现共享相同的core。不同的是模型,控制器,请求,路线等。

首次尝试

我设置了3个文件夹,一个名为core,一个名为project_1,一个名为project_2core仅包含在两个项目中共享的公共文件。 core中没有模型,控制器。每次我对核心进行更改时,我都可以轻松推送到任一项目。但问题是,由于core没有任何模型,控制器......,我无法进行任何测试。

第二次尝试

稍后,我从test创建了一个core项目,其中模型,控制器从project_2复制而来。然后在.git/info/exclude中添加这些文件,然后在git rm --cached file中添加每个文件。但问题是,当推或拉时,这些文件也会在project_2 ...

中删除

我想要实现的目标

我想要一个设置,我可以在test项目中轻松扭曲和测试代码,然后只将core内的代码推送到project_1project_2。< / p>

1 个答案:

答案 0 :(得分:0)

您需要使用分支机构。

分支包含来自存储库基本分支中特定点的单独更改历史记录;称为主人

检查分支机构;将您的目录切换为仅在该分支中跟踪的那些文件。

您可以在线找到许多不同的分支策略。例如,this article by atlassian描述了功能分支工作流程。

在你的情况下,你应该尝试一些简单的事情:

  1. 创建您的存储库。
  2. 仅添加所有环境通用的文件。我假设这是“核心”;并提交你的更改。
  3. 使用git checkout -b project_1
  4. 为项目1创建分支
  5. 您将在此处添加 core 中的所有文件
  6. 正常工作,您创建/添加/编辑的任何文件只会在project_1分支中跟踪,不会影响“核心”(或主分支)。
  7. 如果要创建测试环境,请测试1正在执行的项目:

    1. 从主分支创建一个名为test_project_1的新分支。
    2. 合并project_1分支;与git merge project_1
    3. 进行测试。
    4. 如果您发现了错误;切换回project_1; git checkout project_1
    5. 为该错误修复创建一个新分支,例如git checkout -b project_1_bugfix_1
    6. 修复错误,一旦完成;你可以检查一下并在测试分支上进行测试(git checkout test_project_1; git merge test_project_1_bugfix_1)。
    7. 确认错误已修复后,您应该将更改合并回主project_1分支;与git checkout -b project_1; git merge project_1_bugfix_1
    8. 现在如果需要,可以删除bugfix分支;与git branch -d project_1_bugfix_1
    9. 每次切换分支时;文件系统只会反映在该分支中跟踪的文件(当然,任何未跟踪的文件都将保留原样)。

        

      如果我在test_project_1分支中发现核心错误怎么办?怎么样   我该修理吗?我应该在test_project_1分支中修复它吗?

      1. 切换到核心(您的主分支)。
      2. 创建分支以实现错误修正。
      3. 解决问题。
      4. 测试它(与测试任何其他分支的方式相同)。
      5. 将错误修复分支合并回主服务器。
      6. 切换到test_project_1
      7. 来自大师的
      8. Rebase