2012-08-14 119 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主機工作,切換域指向新的實例。