Git Pull无变更问题求助:Bitbucket仓库撤销提交后无法拉取原提交
恢复被Git Revert撤销的提交到分支B的解决方案
之所以git pull和merge没用,是因为原提交已经存在于分支B的提交历史里——你执行的git revert只是新增了一个反向提交来抵消原提交的修改,并没有把原提交从历史中移除。Git判断是否有变更时,会检查远程分支的提交是否已被本地包含,所以自然会显示“无变更可用”。
下面提供两种可行的解决方案:
方案一:撤销Revert提交(推荐,不修改历史)
这种方式适合分支已经推送到远程、需要保留完整提交记录的场景:
- 先查看分支B的提交历史,找到之前
git revert生成的提交ID:
你会看到一条类似git log --onelineabc1234 Revert "原提交的备注信息"的记录,复制这个提交的ID(比如abc1234)。 - 执行反向Revert,抵消之前的撤销操作:
这会生成一个新提交,把原提交的修改重新恢复到分支B中。之后正常push即可。git revert abc1234
方案二:重置分支到Revert前的状态(慎用,会修改历史)
如果分支还没推送到远程,或者团队内已经沟通确认可以覆盖历史,可以用这种方式:
- 同样用
git log --oneline找到revert操作之前的那个提交ID(也就是你执行git revert之前的最后一个提交)。 - 执行硬重置,将分支B回退到该状态:
git reset --hard <目标提交ID> - 如果分支已经推送到远程,需要强制推送覆盖远程分支:
⚠️ 警告:强制推送会覆盖远程分支的提交历史,若其他同事已经拉取过该分支,会导致他们的本地分支与远程冲突,必须提前和团队沟通。git push -f origin B
内容的提问来源于stack exchange,提问作者Harshal C
相关产品推荐
相关产品推荐

