我无法从 git 中删除特定提交

I cannot delete a specific commit from git

我正在尝试从 git 日志中删除特定提交。我已经访问过很多问题,发现 git rebase -i 是可行的方法。 但这不起作用,为什么? 下面是我的屏幕截图,显示我有 3 次提交,我正试图摆脱 file1.txt

这是我一直在尝试做的事情:

git log --oneline
git rebase -i HEAD~2

然后记事本打开, 为了清楚起见,这里是屏幕截图:

然后我添加

drop <commit-hash of file1.txt>
then save and exit 

但似乎没有任何变化!

我应该如何删除特定的提交?

如果那个特定的提交已经被推送到远程仓库,我该怎么办?

要使用交互式 rebase 删除提交,您必须从该提交的 parent 开始启动 rebase。这样,目标提交就会包含在待办事项列表中。

您没有这样做,因此您的目标提交不在待办事项列表中。您尝试手动添加它,但那是假的。

在您的目标没有父级的特殊情况下,您可以使用 --root 选项。那就是你所处的情况。

最后,请注意 Git 是关于提交的。不是文件。