被接受的答案是正确的。在这个答案中,我会补充三件事:
- 这是如何发生的(经常发生在我身上)
- 展示一个例子
- 如何确保在通过
-D
强制删除之前不会错过任何更改
我在 GitHub 上使用 Rebase and merge 作为默认的 PR 合并方法。这将为相同的更改创建 新的 提交(哈希值)。
例如,当我运行以下命令时:
git log --graph --left-right --oneline add-theme-dark-2...main
在我的一个项目中,我遇到了这个:
> fba6fce (HEAD -> main, tag: v2.0.9, origin/main) Refactored to semantic class names.
> 4e665bc Refactored to semantic class names. (1a)
....
> 8bd13a6 Added 'font-semibold' to title. (2a)
< 23f7b8a (add-theme-dark-2) Refactored to semantic class names.
< cf71814 Refactored to semantic class names. (1b)
....
< d3a774a Added 'font-semibold' to title. (2b)
(END)
请注意,1a / 1b和2a / 2b具有不同的提交哈希值。
为确保您未错过任何更改,请运行:
git log --graph --left-right --cherry-pick --oneline add-theme-dark-2...main
如果它返回一个以"="开头的列表:
= fba6fce (HEAD -> main, tag: v2.0.9, origin/main) Refactored to semantic class names.
= 4e665bc Refactored to semantic class names.
...
= 346770b Moved text size to component.
= 68cd471 Added theme-dark.
= 8bd13a6 Added 'font-semibold' to title.
可以安全删除分支:
git branch -D add-theme-dark2
git commit --amend
命令时会出现这种情况。 - Arcolye