2013-06-26 46 views
3

我們希望將子項目放在Git存儲庫中。回購,即ParentRepo,需要與我們的私人服務器同步,然後幾個子目錄也需要推送到公司github回購並從上游github回購。我們還需要能夠從那些將被推送到github的子目錄(而不是整個父回購)進行分支。是否有可能在維護父代回購結構的同時創建Git子樹的分支?

因此,我們的層次是這樣的:

  • ParentRepo /方向1/GitHubProj1
  • ParentRepo /方向1/GitHubProj2從
  • ParentRepo /方向1/PrivateProj

GitHubProj1和GitHubProj2是叉子社區github回購。我們需要能夠從社區github回購站點獲取上游變更,並從我們的github回購站點獲取分支。 PrivateProj不會推送或從任何github回購拉。一切都被推送到我們的私人服務器上的ParentRepo。

我們考慮使用子模塊,但似乎有很多關於它們的抱怨,所以我們決定嘗試使用子樹。我們使用公司github帳戶網址創建了子樹,併爲外部github帳戶添加了遠程跟蹤分支。

但是,當我們使用帶有--branch選項的git subtree split命令嘗試創建子樹的一個分支時,子樹的內容被放在父回購的根目錄中。

當我們創建每個子樹的一個分支時,我們想要維護其父目錄結構中的原始目錄結構。除了使用特殊的術語,有沒有辦法以這種方式製作分支或以不同的方式設置我們的回購,這是可能的?

回答

0

當你使用git subtree拆分和分支時,它只爲子樹創建該分支。確實,分支是父項目的一部分,所以切換到該分支可能會刪除大量文件,然後在移回時重建它們,這很煩人。

您的最佳選擇是可能在本地克隆github回購(您的ParentRepo路徑之外的某處)以及可選分支。然後,你可以回到簡單的推拉子樹命令,直接到你的本地副本,並從那裏推到github。

這樣做的效果與您在拆分時所做的一樣,但只需一步操作,因此您不必在拆分後切換到臨時分支,然後將其合併到某個位置,然後切換回原始分支,刪除臨時分支。

+0

我希望這不會讓人困惑:P如果對你有任何用處,我會將子樹添加到tortoisegit。 – johnb003

相關問題