我发现了几个类似的问题和答案,但是那些只关注本地提交(有时候回答分享变更后不要这么做)。
我有以下内容:
A-B-C-D-E (HEAD)
↑
master = origin/master
我想要的是:
someBranch
↓
C-D-E (HEAD)
/
A-B-F
↑
master = origin/master
其中F可以是提交,说主人已在那里重置。基本上我想撤消C,D和E中的更改但我不关心重置在存储库中是否可见。
如果不可能,我最接近的选择是什么?
编辑:要明确:我不是唯一一个参与该项目的人。
答案 0 :(得分:1)
非常残酷的解决方案是
git branch someBranch
git reset --hard HEAD~3
git push --force
如果您知道自从您推到分支以来没有其他人拉过分支,这可能是可以接受的,例如如果你是唯一一个从事这个项目的人。否则你可能会遇到问题。
答案 1 :(得分:0)
您可以在所有提交中执行git revert
,然后向上游推送。它将还原所有这些提交。