git filter-branch 从我的 repo 中删除所有子模块

标签 git github revision-history git-rewrite-history

你好,我已经成功地重写了历史并得到了我想使用 git filter-branch -f --prune-empty --tree-filter 'rm -rf <all unwanted dirs>' 提取的 5 个文件夹。并保留所有 git 历史记录。

唯一剩下的问题是子模块,我还有提交要做

Subproject commit <hash>

我想从我的 git 历史记录中完全删除所有这些子模块提交,我该如何完成?

最佳答案

我已经做到了

git filter-branch -f --prune-empty --tree-filter '
    git submodule deinit -f .
    git rm -rf lib && rm -rf lib
    find . -name .gitmodules -delete' HEAD

假设我所有的子模块都位于lib 目录

关于git filter-branch 从我的 repo 中删除所有子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207104/

相关文章:

git - 没有为 Heroku 排队的键?

git - 如何在 merge github 分支时触发 jenkins 构建?

git - 如何在 github 上保留固定的文件版本

git - git 在推送非快进提交时如何丢失历史记录?

git - 为什么我总是遇到错误 "Push to origin/master was rejected"?

git - 从命令行在 Bitbucket 上创建 pull 请求

Git错误: failed to push some refs

git - 如何从快照创建具有自己历史记录的 git 存储库?

tfs - 我可以复制 TFS2010 中的文件历史记录吗?

GitHub for Mac 每次启动时 pop "enter your password for the ssh key id_rsa"