git:删除标记的repo内容

时间:2015-02-18 17:17:53

标签: git

我试图创建一个子集git repo,它有一个冗长的列表 与官方版本对应的标记版本。例如 ver-0到ver-99,我们只对其子集有法律批准 先前版本(例如:ver-0到ver-95)。

在回购中删除后一版本标签非常简单, 但是,与现在删除的标签相关的内容也必须 从回购中删除,以保持与我们的严格一致 法律限制(公司发展环境+律师= this_crap)。

删除后面的标签后,我找不到任何方法来修剪掉 与删除的标签关联的提交。设置孤独 接下来通过git reset --hard [sha-1 of ver-95]主分支 通过git prune -v --expire=now,我预计会找到提交 和blob与后来的版本标签唯一关联 发现悬空并移除。然而事实并非如此。对于 示例git log [sha-1 of ver-99]仍然找到ver-99 回购中的血统。

任何人都知道有办法完成上述任务或交替完成 解释为什么提交/ blob与删除的标签相关联 不被认为是悬空?

2 个答案:

答案 0 :(得分:1)

使用' git prune -v --expire = now'只删除超过"现在"的松散物体。 你可能只运行

git prune -v

答案 1 :(得分:0)

To get just the absolute minimum content needed for specific refs, fetch them into a clean repo:

git init --template='' some/new/spot
cd !$
git fetch your/old/repo tag1 tag2 tag3 etc 

awk '{print "git",$2,$3,$1}' .git/FETCH_HEAD \
| cat # sh -x

and copy any other metadata you want across (.git/config, any hooks, etc) manually.