对于这样的情况,我需要最好的git设置练习:
我目前正在开发一个Laravel项目,我们暂时将其称为core
,它有两个实现(称为project_1
,project_2
)。这两个实现共享相同的core
。不同的是模型,控制器,请求,路线等。
首次尝试
我设置了3个文件夹,一个名为core
,一个名为project_1
,一个名为project_2
。 core
仅包含在两个项目中共享的公共文件。 core
中没有模型,控制器。每次我对核心进行更改时,我都可以轻松推送到任一项目。但问题是,由于core
没有任何模型,控制器......,我无法进行任何测试。
第二次尝试
稍后,我从test
创建了一个core
项目,其中模型,控制器从project_2
复制而来。然后在.git/info/exclude
中添加这些文件,然后在git rm --cached file
中添加每个文件。但问题是,当推或拉时,这些文件也会在project_2
...
我想要实现的目标
我想要一个设置,我可以在test
项目中轻松扭曲和测试代码,然后只将core
内的代码推送到project_1
和project_2
。< / p>
答案 0 :(得分:0)
您需要使用分支机构。
分支包含来自存储库基本分支中特定点的单独更改历史记录;称为主人。
检查分支机构;将您的目录切换为仅在该分支中跟踪的那些文件。
您可以在线找到许多不同的分支策略。例如,this article by atlassian描述了功能分支工作流程。
在你的情况下,你应该尝试一些简单的事情:
git checkout -b project_1
如果要创建测试环境,请测试1正在执行的项目:
git merge project_1
。git checkout project_1
。git checkout -b project_1_bugfix_1
。git checkout test_project_1; git merge test_project_1_bugfix_1
)。project_1
分支;与git checkout -b project_1; git merge project_1_bugfix_1
。git branch -d project_1_bugfix_1
。每次切换分支时;文件系统只会反映在该分支中跟踪的文件(当然,任何未跟踪的文件都将保留原样)。
如果我在test_project_1分支中发现核心错误怎么办?怎么样 我该修理吗?我应该在test_project_1分支中修复它吗?
test_project_1
。