Git:如何删除所有未连接到存储库中任何现有文件的提交

Git:如何删除所有未连接到存储库中任何现有文件的提交,git,Git,我正在寻找一个命令,它将删除所有未连接到现有文件的提交 在一个例子中,如果我在两个月前删除了文件XXX.txt(一次提交,一次文件删除),我想从git历史记录中删除该提交。我认为这不是处理git的方式。如果删除一些提交,则必须重写历史记录。如果删除文件,则该文件仍存在于系统中,否则无法恢复到旧状态 问题在于,所有提交(历史记录)都是一棵树,并且相互连接。从他们中的一些人身上,你已经建立了新的分支。因此,如果你想删除旧的提交,你的历史记录是不正确的,你必须重写历史记录 在某些情况下,您可以使用重基

我正在寻找一个命令,它将删除所有未连接到现有文件的提交


在一个例子中,如果我在两个月前删除了文件
XXX.txt
(一次提交,一次文件删除),我想从git历史记录中删除该提交。

我认为这不是处理git的方式。如果删除一些提交,则必须重写历史记录。如果删除文件,则该文件仍存在于系统中,否则无法恢复到旧状态

问题在于,所有提交(历史记录)都是一棵树,并且相互连接。从他们中的一些人身上,你已经建立了新的分支。因此,如果你想删除旧的提交,你的历史记录是不正确的,你必须重写历史记录

在某些情况下,您可以使用重基樱桃镐。请看这里:


为什么要删除这样的提交?我从其他存储库中筛选分支并删除多个IDE中不相关的文件。我可能可以对多个文件夹执行多个过滤器分支命令,但速度要快得多。然后我需要删除与已删除文件相关的提交。