首页 > 解决方案 > 如何删除未使用“git rebase”显示的提交?

问题描述

我有一个存储库,只有一个名为main.

以下是git log --oneline --graph --all输出:

* 92033fe (HEAD -> main, origin/main) [test] Add some new tests
* 5e281c4 [style] Improve code formatting
* 50ccf6a release-1
| * 307cfba (tag: 1.0.0) release-1
|/
* 7d734b4 [feat] Add new feature
* 0b3c993 [fix] Fix some tests

这里发生的事情是,事后我尝试将 commit 标记50ccf6a1.0.0,但做错了,现在我有这个重复,并且似乎分支出来, commit 307cfba,我想摆脱它,而不影响其余部分分支。

通常,我会这样做git rebase -i --root main,但是这个特定的提交不会出现在提交列表中,只有我打算保留的那些:

pick 0b3c993 [fix] [fix] Fix some tests
pick 7d734b4 [feat] Add new feature
pick 50ccf6a release-1
pick 5e281c4 [style] Improve code formatting
pick 92033fe [test] Add some new tests

这里发生了什么?

标签: gitversion-control

解决方案


提交307cfba不在分支上main。如果你想要它离开 branch main,这很容易:什么都不做,因为它已经不存在了。

307cfba由于 tag 找到了Commit 1.0.0307cfba 如果您根本不想看到,即使使用git log --all,您也需要删除标签1.0.0(或强行移动它,但如果您打算这样做,一种简单的方法是先删除它,然后重新创建它)。


推荐阅读