我的团队和我几个月前检查了果园1.7.2,并为解决方案添加了许多模块/功能。不幸的是,当时我们没有在orchard的源代码中设置任何git'ineply'遥控器,也没有版本果园的源代码。
我想通过正确设置来改变我们遵循果园源代码演变的方式。
我看待它的方式:
因此,更新到最新版本将非常简单:
# Update local repo's master to raw latest orchard
git fetch upstream
git checkout master
git merge upstream/master
# Update development branch, merge changes and adapt custom code
git checkout dev
git merge master
#update code and run tests
git commit -m "updated orchard from 1.7.2 to 1.8.0"
git push origin
如果知道目前,你将如何继续:
答案 0 :(得分:1)
如果我理解你的话,你的工作很大程度上取决于果园来源。为了简单起见,你可以为orchard创建第二个遥控器(它只跟踪遥控器的主分支),如下所示:
git remote add -t master orchard https://git01.codeplex.com/orchard
之后你就可以从那个“新”遥控器中取出或拉出。你可以考虑从特殊的“整合”分支中“拉入”,让你的主人拥有更多的自由。
在这个例子中,我将1.8.x
- 分支合并到一个集成分支中:
$ git checkout -b integration
Switched to a new branch 'integration'
$ git pull -f orchard 1.8.x:integration
From https://git01.codeplex.com/orchard
+ 74136b6...37e9a33 1.8.x -> integration (forced update)
但是意识到正常合并将失败,因为您的代码库无法与orchard的代码库匹配 - 它们依赖于不同的commit-id。这就是为什么你需要使用--force
- 标志来禁用id-check并合并像地狱之类的东西。
之后 - 当然 - 你会遇到很多合并冲突。
为了避免将来合并的麻烦,我建议你分叉果园存储库并以相反的方式进行合并。将项目合并到orchard-fork中。然后你就可以对未来的果园提交进行修改。