2017-08-30 138 views
1

我在私人回購項目中有一個私人項目,將它作爲單個項目保存起來非常方便。這種方式很容易在沒有任何特殊命令的情況下使用IDE進行工作。如何將git倉庫的一部分推到另一個倉庫?

但我也想在github上發佈它的一部分,並且有時會更新公共版本。我怎樣才能使一個repo子目錄A的頂級目錄庫的回購目錄,並仍然有所有的標準命令適用於整個回購A?

+0

看看[git的子樹( https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree)是你正在尋找的。 –

+0

我正在使用''git subrepo''。替代方法是''git subtree''和''git submodule'',但是我的研究表明''subrepo''在這一點上最容易使用。 – Muposat

+0

[將子目錄分離(移動)到單獨的Git存儲庫中]可能的重複(https://stackoverflow.com/questions/359424/detach-move-subdirectory-into-separate-git-repository) – phd

回答

0

大概子模塊/子樹是做到這一點的最好辦法,而只是提供了(有點令人費解)替代:

  • 通過git filter-branch --subdirectory-filter注提取repoA的subfolderB到一個新的,獨立的repoB那filter-branch重寫回購,所以你應該做它的repoA)的單獨副本
  • 繼續repoA工作作爲首要回購
  • 通過git remote add repoA ...
  • 添加repoA作爲repoB的遠程
  • repoA的偶爾變化可以通過git fetch repoA; git cherry-pick ...櫻桃採摘到repoB。 Git的可以管理這個即使兩個回購的文件結構不匹配(一切都應該罰款,只要你想反向移植到repoB在repoA的提交是獨立於subfolderB
相關問題