如何使用压缩将子文件夹拆分为新的git仓库

时间:2017-03-10 00:05:27

标签: git

我有一个大小为3.2 GB的git checkout,包括.git dir。这个仓库中有一个子文件夹,我想分成一个新的git仓库。所以我按照这里的说明进行操作:https://help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository/

到目前为止,这么好。但是,新的repo(包括.git目录)仍然是2 GB,但签出的文件只有22MB,主分支上的日志中只有164个提交。我尝试过git reflog expire --expire=now --allgit gc --aggressive以及git prune --now等几项内容。

我仍然看到很多我想要清除的分支。

我该怎么做才能确保此回购邮件中没有删除的代码?

更多信息:

git st显示:

# Your branch and 'origin/master' have diverged,
# and have 164 and 101729 different commits each, respectively.
#   (use "git pull" to merge the remote branch into yours)

所以看起来历史记录仍然包含所有这些提交。

1 个答案:

答案 0 :(得分:0)

我忽略了console.log($('path')[0].attributes.d.value); console.log($('path')[1].attributes.d.value); 命令仅适用于给定分支的事实。因此,我必须对我想要保留的所有分支执行此操作,并删除其他分支。接下来,我删除了所有标签。然后,我使用$(document).ready(function () {})在本地克隆了repo,但它仍然 2GB。最后,运行这两个命令帮助我清理所有剩余的残骸:

git --filter-branch

......将其降至28MB。

警告:可能只适用于旧版本的git,这些说明是使用git v1.8.3.1应用的。