我知道這是不尋常的,但我的git repo之一,作爲一個收集所有回購,變得太大,我想分成兩個,分別爲repoA
和repoB
。Git拆分和清除
我發現做分裂的「Forking a sub directory of a repository on GitHub and making it part of my own repo」的一種方式,但是,只講述分裂,我想歷史上被分割爲好,這樣repoA
將只包含的repoA
歷史,而不是repoB
和反之亦然。否則,我會得到兩個回購券,但因爲它保存的所有歷史記錄而使其規模增加一倍。
UPDATE:
由於@ElpieKay指出來看看git filter-branch
(而不是git clean
,我發現與 「混帳清除」 搜索時),我發現這一點:
https://help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository/
這正是我正在尋找的。但是,還有一個問題 - 如何從repoB
中刪除repoA
內容?即,分裂出repoA
的時候,我只需要做好,
git filter-branch --prune-empty --subdirectory-filter sub1/sub2/sub3 master
所以在repoB
,如何刪除sub1/sub2/sub3
,同時保持一切?
此外,在上述文檔此命令,
git remote set-url origin https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
當我試了一下,只更新了fetch
URL和push
一個仍然指向舊的。我錯過了什麼?
'git的過濾branch'兩次。一個從歷史中刪除repoA,另一個刪除repoB。將創建兩個重寫的歷史記錄。 – ElpieKay
謝謝@ElpieKay,OP問題縮小了。 – xpt