我知道这是不寻常的,但我的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