还原 git 推送到错误的分支

Revert git push to wrong branch

我遇到了 git 事故。

我在本地分支机构工作 "feature1"
我想做 "git push not-origin feature1:master"
相反,我不小心做了 "git push origin feature1:master".

它弄得一团糟,使提交交错(并不是说我只能恢复特定的提交)

考虑到我在本地没有 master 的更新版本所以我不能强制推送它,有什么办法可以恢复吗?

PS:我没有找到任何方法来阻止推送到 master 而不升级到企业版,这对于这个特性来说太昂贵了...

Is there any way to revert this considering I did not have an updated version of master locally so i can't just force push it?

我认为你错了;只要你没有强制推送(带有 --forced 标志的推送),只有当远程引用位于当前引用的路径上时,git push 才会成功,即你当前的分支没有从您的远程主分支分支。

这意味着您的分支 feature1 有一些提交 C,这正是 master 指向的内容。

所以你需要做的就是弄清楚C,使用git branch master_recovered C创建一个新分支,然后使用git push -f origin master_recovered:master.

强制将这个分支推送到master