Git 如何删除提交

Git 如何删除提交,git,commit,Git,Commit,我想删除commit 9dfd73,突出显示的那个。 正如你所看到的,它不是一个分支。这是头部脱落的结果 我尝试在其上创建一个分支,然后使用git branch-d9dfd73删除该分支,但这删除了该分支,留下了提交 有什么想法吗 更新: 由于某种原因,该提交不再存在于我的树中,我也没有机会尝试您的解决方案 但是,如果您能解释该命令真正的作用,我会将其标记为正确答案:-) git rebase--在^HEAD上 我理解它是这样的:“将commit 9dfd73和HEAD(不包括HEAD本身)之间

我想删除commit 9dfd73,突出显示的那个。 正如你所看到的,它不是一个分支。这是头部脱落的结果

我尝试在其上创建一个分支,然后使用git branch-d9dfd73删除该分支,但这删除了该分支,留下了提交

有什么想法吗

更新:

由于某种原因,该提交不再存在于我的树中,我也没有机会尝试您的解决方案

但是,如果您能解释该命令真正的作用,我会将其标记为正确答案:-)

git rebase--在^HEAD上

我理解它是这样的:“将commit 9dfd73和HEAD(不包括HEAD本身)之间的所有提交放在commit 9dfd73之上”

但是我不明白这个符号

另外,我不确定ID是否应该相同。你能进一步解释一下吗


谢谢

使用以下命令

git rebase --onto <commit-id>^ <commit-id> HEAD
git-rebase--on^HEAD

提交id将是您的SHA-1 id

您应该尝试使用gitk中的文件>重新加载菜单(ctrl-F5)。这可能会使您的提交消失,因为它不再是当前提交,也不在任何分支上。

如果您坚持现在就删除它/它们,请遵循。但是,别担心;它最终会自行消失

你不能重新设定提交的基础并删除它吗?这是我具体问题的正确答案。我需要深入研究git rebase——无论如何,这是一种比创建一个新分支并删除它更快的方法。谢谢