我正在寻找一个命令,该命令将删除所有未连接到现有文件的提交。
在一个示例中,如果我两个月前删除了文件XXX.txt
(一次提交删除了一个文件),我想从git历史记录中删除该提交。
答案 0 :(得分:1)
我认为这不是您应该使用git的方式。如果删除某些提交,则必须重写历史记录。如果删除文件,则该文件仍存在于系统中,否则无法恢复为较早的状态。
问题在于所有提交(历史记录)都是一棵树,并且彼此连接。从其中的一些您已经建立了新的分支机构。因此,如果您想删除较早的提交,则您的历史记录是不正确的,因此必须重写历史记录。
在某些情况下,您可以使用 Rebase 和 Cherrypick 。在这里看看: