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