如何正确处理GIT分支领先于'origin/master' X个提交

4

注:请注意,我已经阅读了几乎所有与此相关的其他问题,但仍然完全不起作用。

我在master分支上遇到了以下问题:

git status

On branch master
Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

在阅读了关于这个案例的大部分文章并向我工作的公司咨询后,我被禁止进行以下操作:
重新设置基础分支(rebase)
或者使用
git fetch origin git reset --hard origin/master 所以我尝试了:
git fetch origin
git pull

但是我做了 git status 后得到了同样的结果。

我应该怎么准确修复我的本地主分支(local master)呢?

我的目标:

  • 不要推送,因为我在master

  • 在不影响master分支的情况下,摆脱当前提交(commit)


这不是问题。当共享远程时,这是常见的情况。拉取操作无法解决它,因为您需要推送,就像 git 消息所说的那样:“使用“git push”发布您的本地提交”。 - evolutionxbox
@evolutionxbox 这是 master 分支,我需要取消当前的更改,而不是将它们推送。 - John D
这5个提交是您添加的,现在想要删除它们吗?如果是这样,这可能会有所帮助 https://dev59.com/yGkw5IYBdhLWcg3wE2dA - Joy Terence
@JohnD 然后执行 git reset --hard HEAD~5。这将回滚5个提交。 - RoadRunner
1
这个回答解决了你的问题吗?如何在Github和本地删除最后n个提交? - evolutionxbox
显示剩余3条评论
1个回答

4
为了将本地代码库回滚5个提交以与远程的master分支保持同步,您可以执行以下操作:
git reset --hard HEAD~5

或者运行git log并重置到origin/master的HEAD提交

git reset --hard <commit id>

您也可以重置到 origin/master

git reset --hard origin/master

2
希望这能帮助他人,在我阅读过的所有内容中,这是更好的解决方案。 - John D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接