2016-11-22 335 views
-1

我不知道如何問這個最好的方法,但我們有一個測試服務器設置在工作中,我們有一個生產服務器。我們主要在測試服務器上開發,然後在使用功能完成時將代碼(手動)推送到生產服務器。Git將兩個單獨的項目/ git repos合併到一個主項目中?

現在我想擺脫這一點,我們可以使用git,所以我包裝了所有文件和whatnots,並創建了一個git repo。太棒了,測試服務器已經建立。

現在呢?從生產服務器上的文件(不同)設置另一個git存儲庫?然後?從那裏將兩個回購合併成一個回購單?我對這個方面很陌生,所以我只是需要幫助。

注意:有些開發人員將編輯生產服務器上的文件,並且不會將這些文件移回我們的測試服務器(主要是因爲他們正在處理的功能尚未完成),所以現在有了新的更改在我們的測試服務器上進行了更新,現在需要將新的更改轉移到生產環境中。

我希望這是有道理的,評論,如果你需要澄清.. 感謝您的時間 任何幫助表示讚賞!

+0

如果回購是完全不同的?如果是的話,你可以使用compareBeyound工具並首先合併它 – KOTIOS

回答

1

我會像下面描述的那樣處理它(不幸的是會有很多手動工作來同步這兩個)。重置和創建獨立分支的原因是,可以在同步後將單個新功能合併到生產中。

  1. 創建一個回購協議用於生產服務器
  2. 創建測試回購
  3. 的本地克隆添加生產回購爲使用git remote add prod <url>
  4. 在當地回購新的遠程獲取生產回購git fetch prod
  5. 如果在測試中不存在prod上的文件中存在更改,請將prod/master合併到本地主節點中以解決所有衝突
  6. 將本地分支重置爲生產git reset --soft prod/master
  7. 創建分支並提交您已經根據各自的特點
  8. 合併所有新的分支機構到主分支
  9. 按各分公司進行測試回購工作樹改變(主會需要--force)

請注意,重要的是沒有新的分支機構是基於測試/主機,而是產品/主機。否則就不可能將其合併到生產環境中,而無需進行其他提交(這也是爲什麼我們進行了git重置並創建了獨立分支)。

如果直接在主服務器上創建或編輯文件,則需要在那裏提交文件並將其合併回測試。

如果您無法讓所有開發人員使用git,您最終可能會花費比管理分支機構等更多的時間,因此我建議您在查看工作流程以便在同步repos之後使生活更輕鬆。不幸的是,如果您使用的工作流程不適合,Git不是一個好的解決方案。