从git存储库拆分目录并拥有一个SMALL git repo

时间:2014-02-10 22:31:44

标签: git

我有以下内容:

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有意义吗?

0 个答案:

没有答案