首页 > 解决方案 > git push -f 将不需要的日志留在 bitbucket 中

问题描述

我做了一个提交,推送它,但后来意识到我在代码上犯了一些错误,我做了git reset HEAD~,然后重新提交push -f,我发现我的 PR 中有一个额外的日志。我该如何摆脱它?

标签: gitbitbucket

解决方案


假设我们有一个远程origin分支master,当前指向 commit dd61ab32。我们想删除top提交。翻译成 git 术语,我们希望master将 origin 远程存储库的分支强制parentdd61ab32

git push origin +dd61ab32^:master

git 解释x^为父级x+强制非快进推送的地方。

如果这是您要在本地删除的最后一次提交,则:​​需要两个步骤:

git reset HEAD^ --hard
git push origin -f

如果它不是最后一次提交,您可以尝试:

git rebase -i commit_hash^

如果分支已经被推送,则重写历史记录或变基通常是一个坏主意,您可能还更喜欢使用:

git revert commit_hash

资源


推荐阅读