Git:如何删除所有未与存储库中任何现有文件关联的提交

时间:2019-06-13 07:52:18

标签: git

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

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

1 个答案:

答案 0 :(得分:1)

我认为这不是您应该使用git的方式。如果删除某些提交,则必须重写历史记录。如果删除文件,则该文件仍存在于系统中,否则无法恢复为较早的状态。

问题在于所有提交(历史记录)都是一棵树,并且彼此连接。从其中的一些您已经建立了新的分支机构。因此,如果您想删除较早的提交,则您的历史记录是不正确的,因此必须重写历史记录。

在某些情况下,您可以使用 Rebase Cherrypick 。在这里看看:

https://www.clock.co.uk/insight/deleting-a-git-commit