如何放弃已推送到远程的更改?

时间:2012-03-05 16:23:20

标签: git version-control

我发现了几个类似的问题和答案,但是那些只关注本地提交(有时候回答分享变更后不要这么做)。

我有以下内容:

A-B-C-D-E (HEAD)
        ↑
      master = origin/master

我想要的是:

    someBranch
        ↓
    C-D-E (HEAD)
   /
A-B-F
    ↑
master = origin/master

其中F可以是提交,说主人已在那里重置。基本上我想撤消C,D和E中的更改但我不关心重置在存储库中是否可见。

如果不可能,我最接近的选择是什么?

编辑:要明确:我不是唯一一个参与该项目的人。

2 个答案:

答案 0 :(得分:1)

非常残酷的解决方案是

git branch someBranch
git reset --hard HEAD~3
git push --force

如果您知道自从您推到分支以来没有其他人拉过分支,这可能是可以接受的,例如如果你是唯一一个从事这个项目的人。否则你可能会遇到问题。

答案 1 :(得分:0)

您可以在所有提交中执行git revert,然后向上游推送。它将还原所有这些提交。

相关问题