2017-06-21 88 views
0

我目前的遠程回購有2個分支「主,測試」 我需要的是推動多個項目,我有這個測試分支,但我不不想在本地合併項目,這樣我就可以保持每個項目歷史的清潔。設置多個git推送到分段分支上的單個遠程然後自動合併到主

文件夾結構或LOCALMACHINE /客戶 /API /管理 /文檔 每個文件夾都有自己的回購 「本地」。

我想他們都推到「遠程/分支測試」 所以比測試分支文件夾結構將包含所有我的回購協議(如本地)

我怎樣才能實現這一目標?我已經在網上試圖寄託都,但大多數問題地址同步本地到遠程,和我需要的是同步「遠程與當地的」不中斷我的工作流

編輯

我設法做我需要使用以下命令。

  1. 每個地方的git裏面我又增加了遙控指向主回購 git remote add deploy [email protected]:usern/mainrepo.git
  2. 結帳當前創建一個新的分支 git branch -b stage-deploy
  3. 添加並提交回購,以新的分支 git add . && git commit -m"message"
  4. 同步推新分支與主回購 git push -u deploy

現在我把這個子項目的內容部署到banch mainrepo/stage-deploy接下來我將這個分支與測試分支合併,因爲每個項目都有自己的文件夾,所以不會發生衝突。 我合併後,我從兩個回購站刪除stage-deploy分支。我完成了。

我在每個項目中都這樣做,現在我已將所有項目同步到一個回購站,並且此mainrepo/test已成功部署到成功測試服務器。

剩下的問題 當前要將'stage-deploy'分支與測試分支合併在一起,我從gitlab web界面手動完成它。那麼我回到本地項目和結帳從本地回購刪除分支太

如何自動合併新創建的分支?

+0

我建議也許看着使用submodules:https://git-scm.com/book/en/v2/Git-Tools-Submodules –

+0

謝謝,我試過了,並按照步驟,但後我推遠程所有得到推送是一個.gitmodules文件指向我的機器上的本地目錄,我從'「url = /Users/Zalaboza/vhosts/api/client/.git」克隆的文件夾內容不推送到遠程 – Zalaboza

回答

0

您所要求的問題是多個本地回購將共享相同的遠程引用,即測試分支。所有本地分支機構都可以設置爲跟蹤遠程測試分支,但不會從多個項目推送到它,因爲他們不同意歷史記錄的內容。當然你可以強制推送,但最終會導致垃圾收集器刪除除了最後一個項目之外的所有項目,因爲它是唯一可以在從裁判構建提交樹時可以訪問的項目。

考慮到這一切,一種方法是爲測試分支指向的遠程回購庫上的每個項目創建一個分支(如果它有所不同,您可能希望測試分支有自己的提交併且不指向主分支上的提交)。然後讓您本地回購站上的每個測試分支跟蹤遠程回購站上的自己的分支。從那裏開始,您可以將本地主或測試分支推送到遠程回購站的分行。

所有這一切的一個問題是,如果有分支在多個回購中具有相同的名稱。在這種情況下,您必須在遠程倉庫上強制執行唯一的分支名稱,或者將所有項目放在一個倉庫中,並探索名稱空間和可能的多個工作項目。

此外,你必須小心推動你想要的分支,並正確地跟蹤,否則推 - 全或推 - 鏡像可能會導致頭痛。

+0

謝謝,我結束了與非常相似的東西和它的工作正常,除了我不知道如何自動合併分支與終端測試 – Zalaboza