我想在現有的git倉庫下創建一個新的git倉庫。我希望將歷史記錄保存在新的存儲庫中。我如何創建這個新的git存儲庫?如何從現有git存儲庫中的文件夾創建新的git存儲庫?
7
A
回答
5
您可以克隆它,然後在克隆上應用一個過濾器分支,以便拆分存儲器,只提取您想要的目錄(具有完整的歷史記錄)。
見Detach subdirectory into separate Git repository
注意在克隆步驟中使用的git clone --no-hardlinks /XYZ /ABC
:
的
--no-hardlinks
開關使克隆的本地存儲庫時混帳使用真正的文件副本,而不是hardlinking的。
-1
你可以克隆它並保存你想要的文件;歷史將被保留下來。
2
假設您只想保留子目錄作爲一個單獨的項目:您可以使用git filter-branch
。
- 創建一個新的分支
- 定義「樹過濾器」重新排列已簽出副本,你想要的方式,最好是作爲一個單獨的腳本
- 運行
git filter-branch --tree-filter=/path/to/script thebranch
您現在有一個與正常開發流無關的獨立分支,僅包含子目錄。無論如何克隆新分支只獲取子項目歷史記錄。
相關問題
- 1. 從存儲中.git文件夾重新創建git存儲庫
- 2. 如何從現有的git存儲庫創建'.git'文件文件夾?
- 3. 將現有的git存儲庫的文件夾導入到另一個git存儲庫的子文件夾中
- 4. Git存儲庫內的Git存儲庫
- 5. 子文件夾的Git存儲庫
- 6. 從生產文件夾創建git存儲庫
- 7. 如何從當前現有的本地git存儲庫中最好地建立一個「中央」git存儲庫?
- 8. 水銀:在舊的存儲庫從現有文件夾中新的存儲庫
- 9. 如何在已經有(搞砸了)現有git存儲庫的目錄中創建「全新的存儲庫」?
- 10. Git:從現有的存儲庫中創建Git子模塊並將父級更改反映到子存儲庫
- 11. 您可以在GIT存儲庫中創建虛擬文件夾
- 12. GIT:在GIT Bash中更新存儲庫,GIT GUI仍顯示舊的存儲庫
- 13. 如何從GitHub重新創建我的本地git存儲庫
- 14. 我可以在其子文件夾已經是git存儲庫的文件夾中初始化git存儲庫
- 15. 不是git存儲庫:子文件夾中的'.git'錯誤
- 16. git - 從存儲庫中刪除文件
- 17. 創建新的git存儲庫從現有存儲庫中的指定提交開始
- 18. 如何將git 1存儲庫升級到git 2存儲庫?
- 19. 無法將現有的Git存儲庫添加到新的存儲庫中
- 20. 如何將Git存儲庫的版本與另一個版本的Git存儲庫鏈接Git存儲庫
- 21. 將新創建的文件推入git存儲庫
- 22. 如何刷新我的git存儲庫?
- 23. 如何將新文件夾鏈接到git存儲庫
- 24. 從git-svn克隆的遠程存儲庫更新裸Git存儲庫
- 25. Git:如何排除存儲庫中的子文件夾?
- 26. 更新Git存儲庫
- 27. 如何在現有的git-hub存儲庫中創建新項目?
- 28. 將本地git存儲庫與現有存儲庫鏈接
- 29. 從存儲庫git-retrieve單個文件
- 30. 從Git存儲庫獲取文件
您不需要在此處定義(自定義)樹形過濾器。內置的子目錄過濾器正是如此,正如在[VonC的答案]中鏈接到的答案中所述(http://stackoverflow.com/questions/5421386/how-do-i-create-a-new-git-repository -from-A-夾合的存在-git的存儲庫/ 5421581#5421581)。您也不希望在同一個回購中的新分支上執行此操作,而是在單獨的克隆中執行此操作。如果回購包含分立分支上的子目錄和完整項目,則初始克隆將獲取兩者,爲每個分支創建遠程跟蹤分支。浪費了! – Cascabel 2011-03-24 15:30:15