2017-09-26 56 views
0

所以,在我自己的時間玩弄一個小項目,它變得更多。現在我們希望有一個Gitlab回購是「真相之源」,然後我們可以將它與Jenkins一起部署,最終應用到我們的生產環境中。我們寧願回購不是我個人的回購。在gitlab/git中,切換哪個回購是「真相源」的任何方式?

但是,我不能從我的生活中弄清楚,無論是從命令行還是在我的Gitlab Web控制檯中,創建一個新的回購庫,將其作爲所有其他分支將從中獲得的回購庫。我嘗試在Gitlab中簡單分叉,但如果我對「個人」分支進行更改,則無法使用「合併請求」選項將它們推送到新的「上游」回購;只合並另一方面的工作。

我想我可以嘗試刪除我的個人回購,然後再從「上游」回收,但這讓我感到緊張。是否沒有內置的方法可以告訴gitlab某個回購站現在是所有回收站的上游?

回答

0

我認爲這就是SCMs有分支設施的原因。詳細閱讀git-scm website

對於你的情況,你可以有一個分支production這將被部署,其他貢獻者可以繼續發展到自己的分支。合併請求(或補丁)將在審覈後應用於生產分支。

+0

最後,我剛剛刪除了我的個人回購並從新的「主」中重新加以引用。這似乎工作正常。 分支技術可能效果更好,但這不是我們在辦公室做事的方式,所以我對它不夠熟悉。不過,我會玩弄它。 – thatleviathan

0

如果我們暫時忽略雲源代碼庫系統(Gitlab,Github等) - 所有git repos都是對等的。一個給定的回購是一個「中央」回購實際上是你的問題,你的團隊決定它。

所有你需要做的就是從分叉回購倉庫到你有控制權的本地倉庫,然後在Gitlab上創建一個新的空的「中央」倉庫,並從你的倉庫中推出所有分支等。當地回購。

這聽起來像這基本上是你已經做的。


的「中央」回購協議,叉等進一步討論

的Git確實允許您創建一個「裸」庫,這意味着它的目的是某種形式的中央回購,因爲它沒有工作目錄。這就是所有的雲端回購系統所使用的(裸回購文件夾名稱爲[repo].git,而不是在回購站內有一個單獨的.git文件夾(即[repo]/.git)。但除此之外,只要您獲取所有分支和標籤並遞歸拉出所有的子模塊等等,那麼你的本地回購具有遠程回購所有的相同信息,事實上,你的回購可以作爲另一個本地回購的遠程回購在其他地方。除此之外,Gitlab,Github和其他類似的服務還提供了一些額外的訪問保護手段,您可以在其中「保護」一個分支,以便只有某些人可以合併請求,例如使用分叉賦​​予其他分支團隊成員或團隊(甚至只是互聯網上的隨機人員)能夠創建回購的個人副本,但甚至那麼,如果他們想讓自己的叉子變成單獨的回購,他們可以將所有東西克隆到本地回購,然後讓其他人連接到它,或者將它推到Gitlab的新空回購庫等。

現在,所有人都說,你通常需要通過特殊的方式運行一些命令,以確保你將所有的歷史,所有的提交,所有的分支,所有的標籤都拉下來,以確保你真的擁有了所有的東西,但是在完成之後,給定的回購沒有什麼特別之處。這是Git美麗的一部分 - 如果你有回購,你擁有一切,所以你可以完全脫機工作,只需通過複製文件夾備份整個回購等。

相關問題