我有一个存储库,有时在其中添加了目录。最初,看起来该目录将与该存储库一起使用,但最终我决定将其解压缩到自己的存储库中,而与第一个目录无关。
我这样做了according to GitHub instructions。提取成功,只剩下我需要的目录。
查看git历史记录时,我发现与该特定目录无关的部分仍然存在:
该目录最初是通过“添加的警报模块” 提交添加的(黄色区域底部的第一个):
是否可以摆脱“灰色”提交(结束于分支original/refs/heads/master
)?
这不是关键需求-我可以将其永久拖动(并且在此回购中未更新),但是出于美学的原因,我很乐意摆脱它。
答案 0 :(得分:1)
您可以像使用git filter-branch一样来获取结果,反之亦然。只需将subdirectory-filter
(这意味着“仅保留指定的目录”)替换为index-filter
(这意味着“在每次提交之前使用索引执行某些操作”)。
要在“做某事”中指定“某事”,index-filter将bash命令作为参数,该命令应修改git索引。在您的情况下,该命令应仅删除不需要的目录。例如:
--index-filter 'git rm -r -q --cached --ignore-unmatch the/unwanted/directory'
在提取目录时,请保留所有其他内容。
或者,看看filter-branch-docs。它有很多选择。