使用Git升级Magento

使用Git升级Magento,git,magento,merge,github,upgrade,Git,Magento,Merge,Github,Upgrade,我正要将我们的Magento商店从1.5.0升级到1.6.0,我知道我想怎么做,但我对需要使用的命令有点不确定 首先,我在我们的生产服务器上有我当前的商店,我有git设置,我们的帐户上有一个repo的副本。我对回购协议中的变更等有完整的历史记录,理想情况下,我希望这些变更保持不变 我有一个主题,我们购买了,然后进行了大量优化,但谢天谢地,几乎所有的优化都在override.css文件中。尽管如此,主题文件本身还是有一些小的代码更改 由于Magento使用SVN作为其CV,我(在Github上)发

我正要将我们的Magento商店从1.5.0升级到1.6.0,我知道我想怎么做,但我对需要使用的命令有点不确定

首先,我在我们的生产服务器上有我当前的商店,我有git设置,我们的帐户上有一个repo的副本。我对回购协议中的变更等有完整的历史记录,理想情况下,我希望这些变更保持不变

我有一个主题,我们购买了,然后进行了大量优化,但谢天谢地,几乎所有的优化都在override.css文件中。尽管如此,主题文件本身还是有一些小的代码更改

由于Magento使用SVN作为其CV,我(在Github上)发现了Magento版本的镜像

到目前为止,我想“合并”三个位置:

  • 生产(吉特)
  • Magento镜像(git)
  • 主题(不是git或svn,普通的旧目录)
  • 我在考虑将Magento镜像作为我现有git回购协议的一个分支,称之为1.6.0或类似版本。然后以某种方式将普通主题目录和文件拉入主分支

    我说的对吗


    为了保护生产站点,我还想添加一个站点的暂存版本来运行这些合并来测试它们。

    这很容易,但您必须确保您的站点基于一些主回购协议,可以与早期版本合并(repo将所有Magento版本作为标签或分支,可以从第一个合并到最新版本)

    1.我的站点不在git中
  • 从包含所有magento版本(至少到您当前使用的版本)的master repo克隆开始
  • 获取克隆并签出当前使用版本的新分支
  • 将当前站点复制到此版本
  • 完成后,“git状态”将向您显示与您开始使用的原始版本的差异,以及您对其所做的所有编辑
  • 现在,将所有core编辑移动到本地代码池并将core中的任何更改还原为原始文件,将默认模板或基本模板中的任何EDT移动到您自己的模板,并还原默认模板或基本模板文件中的更改是明智的。所有看起来相对于原始版本进行了修改的文件也是如此。这将为您提供“我所有的更改都是独立于原始代码的,它们不会与我的升级冲突”,提交这种状态是明智的
  • 如果所有内容都与原始文件分离,则是时候升级了。打开默认主题,禁用所有本地和社区扩展,将新版本与当前分支合并。访问网站以执行升级
  • 现在,您的站点已升级,您可以逐个打开主题和自定义扩展,查看哪些兼容,哪些不兼容。逐个调试并解决
  • 我的站点已经在git中
  • 如果它基于回购协议,且所有版本都处于良好状态(跳过2)
  • 若并没有,那个么你们可以添加一些回购协议,将其全部作为你们的远程协议,然后开始合并你们的当前版本,并像第一个场景中描述的那个样将变更从原始版本中分离出来
  • 使用当前站点的新分支
  • 与新版本合并
  • 禁用所有本地、社区扩展,启用默认主题,然后升级
  • 启用主题、一个接一个的扩展,并在发生冲突时进行调试
  • 常见的git设置如下所示:

    • MAGENTO主控->具有所有MAGENTO版本的远程源

    • 您的主控->远程原点是MAGENTO主控

      • 分支机构:yoursite\u dev
      • 分支机构:yoursite\u舞台
      • 分支机构:yoursite\u live
    您总是在您的开发分支上开发,如果更改已准备好进行评估,您可以将_-stage与_-dev合并,如果更改获得批准,您可以从_-dev或从_-stage将状态合并到_-live

    基于理论端点的命令
    这为场景1提供了一个起点,之后您可以在您的站点中进行复制,并开始在当前站点和主题中分离更改和排序

    您当前的分支是否基于github的magento镜像?(我猜这是我维护的分支)@Lee不,我以前从未在github上使用过你的镜像。@Lee很遗憾,你的回购协议即使与自己的分支机构合并,也不能没有冲突,所以不要在它上下注美元。@dannymcc或使用没有冲突的下游合并conflicts@Anton如果我为镜像创建自己的git回购协议,那么我将如何将这些更改拉入当前镜像中生产repo?好的,现在我有了我的主要生产repo,我已经添加了magento ce镜像作为远程镜像。我应该为最新版本创建一个分支并从镜像中提取它,还是应该为最新的生产状态创建一个分支并将镜像提取到主镜像中?在我的帖子中添加了一些伪命令。请注意,如果git repo并非源于主magento repo,从一开始,你将有单独的树,合并将导致荒谬的更改冲突。如果他在git repo中已经有代码,并且有历史,我认为他想保留,最好的办法是根据镜像将他的更改重定到分支上。这样他就保留了自己的代码获取共享的1.5历史。这将使1.6代码的合并更加容易。
    git clone git://github.com/speedupmate/Magento-CE-Mirror.git yourprojectdir 
    cd yourprojectdir
    git fetch --tags
    git tag
    git checkout -b yoursite_dev magento-1.5.0.1
    git checkout -b yoursite_stage yoursite_dev
    git checkout -b yoursite_live yoursite_dev
    git checkout yoursite_dev
    git branch
    //copy in your site
    //separate changes or originals
    //add any file/dir with local importance to .gitignore
    //turn of your default theme, disable all local/community extensions and overrides
    //assuming you are on dev branch commit your clean state 
    git merge magento-1.6.0.0
    //visit the site to execute the upgrade 
    //enable your theme , extensions , debug