我试图创建一个子集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与删除的标签相关联 不被认为是悬空?
答案 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.