我有以下内容:
ABC
/Project1
/Project2
/Lib
/Lib1 << Only has 72K of source code.
/Lib2
而且,项目和图书馆应该在他们自己的资源库中吗?
所以,我认为,这样做:(这不是正确的,而是我希望工作的一个例子)
git clone / OriginalGit NewGit --FilterToSubdirectory'ABC / Lib / Lib1'
留下一个带有存储库的克隆,du将报告为72K,好的,可能是144K,哎呀,我已经满足于1MB - 尽管,Lord知道它实际上会使用那个空间。
我得到:1.6GB后执行以下操作:
git clone /OriginalGit NewGit
cd NewGit
git filter-branch --prune-empty --subdirectory-filter Lib/Lib1 master
(I used a tool to remove the remote/source from the repository as the original will be going away when this is done)
git gc
git prune
git gc --agressive
git reset -hard
git repack -A -d
是的,它仍然挂在那里以1.6GB来容纳72K的数据!
我需要做N次,每个项目和图书馆一次。我现在只是猜测这是用Git做这件事的正确方法,因为在我拥有一个回购中的所有东西之前,分支不会是回购范围。 - 在Project1中放置一个分支在Project2中创建一个分支 - 这对该项目没有任何意义。
我在想我的新结构(每行都是自己的回购):
Project1/
Project2/
Lib/ << Just a directory, not its own repository
Lib1/
Lib2/
这个结构对Git有意义吗?