我需要从我的提交历史中删除一个文件。我遵循了Github的删除敏感数据指南:
$ git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch <myfile>' \
--prune-empty --tag-name-filter cat -- --all
...但我一定是做错了什么,因为现在我有很多重复的提交。一组提交仍然有我的文件;另一组没有。除此之外,它们完全相同。我该如何删除所有仍包含我的文件的提交?
git log
,现在我的提交次数是之前的两倍。每个原始提交都有一个相应的新提交,具有相同的提交消息、时间等。git diff
显示两者之间唯一的区别是我尝试删除的文件的存在。 - Katrinagit filter-branch
命令,它完全正常工作。你最初重写了多少个提交?在执行filter-branch之前,你是否备份了仓库?你是否运行了git log --oneline --graph master
命令? - user456814git log --oneline --graph master
时,看起来就是这样 - 但我仍然不确定如何修复它。我最初有大约100个提交,可惜我没有备份。 - Katrina