2012-08-14 121 views
1

我有一些基本的git问题,我不明白,但我希望有人可以帮助我:)让我说我正在一个Magento项目,我运行本地,但我想把它联机。所以我使用git将我的商店推到我的服务器上。一切正常,直到Magento提供更新。所以这里是我的问题:基本的git工作流程理解

我在我的本地目录和git中添加+ git提交它们,但当我通过Magento连接从1.7更新到1.7.1时,我将有不同的设置在我的服务器,然后我在我的本地计算机上,对不对?

那么,我要做什么,使他们平等?我是否必须从我的服务器上的版本中进行结账并将其替换为本地magento?

回答

1

从版本控制的角度来看,您不希望在同一分支上拥有开发环境和生活环境。例如,您可以使用master分支进行开发,然后在stable分支上使用您的实况环境。还有分支结构有多个featurereleasehotfix分支。但现在让我们保持简单。

关于更新。你永远不想直接在实时环境中运行它们。回滚相关的DB更改几乎是不可能的。因此,总是更新并将你的工作从开发上游推向现场而不是其他方式。

因此,总是在你的开发环境(因此主分支)上进行升级,并在测试之后将它们提交到你的存储库。之后,您可以合并或樱桃选择其他分支。之后更新活动分支(即git pull或git fetch,git rebase)以部署升级。

+0

嘿,谢谢你的回答。所以我没有更新我的Magento商店到1.7.0.1昨天通过Magento连接:/ 只是为了澄清:而不是更新我的网上商店,我将不得不下载更新,而不是更新我的本地商店和测试后,推到我的生活环境? 什么是开发PHP项目并拥有本地和现场环境的常用方式,是否将我的本地环境存储在我的htdocs文件夹中,以便能够在本地服务器上进行测试?然后运行git init这个文件夹,并推动我的项目生活? 谢谢! – 2012-08-14 18:43:23

+0

最后一个问题:我如何解决我更新我店的现场错误? – 2012-08-14 18:44:23

+0

你总是希望你的本地代码库成为一个分支的克隆(git clone)。所以在这种情况下可能是'主'。然后在更改之后,可以将它们推送到存储库。之后,您可以在本地切换到另一个分支“stable”,然后将您的新提交合并或挑选到该分支。然后再将您的工作推送到存储库。在此之后,您可以检索您的实时环境中的更新;这应该是稳定分支的git克隆。 – 2012-08-14 18:49:16

0

我(正试图)use this workflow与我的Magento安装和升级。恕我直言,没有办法无缝升级Magento直播网站。在某些情况下,当DB重建为新版本时,需要停机以停止订单。

我得到的最接近的结果是设置了另一个云实例,运行新版本并在所有错误都运行完成后核对数据库。然后导入当前的活动数据库,让新的magento主机搅动一段时间。

然后决定是否在升级完成后禁用您的旧网站,要求手动输入数据。

然后,一旦新的Magento主机工作,切换域指向新的实例。