在不改变本地代码库的情况下撤销远程分支上的git push操作?

3
我的团队中的一位开发人员将他的更改提交到了错误的远程仓库。我想在远程仓库上删除他推送到此仓库的内容。我不想在本地更改任何内容。
因此,我该如何做呢:
1. 列出远程仓库分支上的提交,以便我可以看到哪些提交需要被删除。 2. 删除远程仓库分支上的每个提交,以便我可以退回到他推送更改之前的提交。
我不确定“删除”是否是正确的过程,或者它是否应该是“还原”,但最终我需要远程仓库分支回到他推送更改之前的状态。
1个回答

5

通过标记上次分支的位置

git tag original-master origin/master

检查从服务器获取的内容:

git fetch

git log --all --graph

或者

gitk --all

如果你的标签仍然有意义,那么远程分支应该在那里,强制推送它:
git push -f origin original-master:master

如果是另一个提交,请将该提交作为主提交推送:

git push -f origin <some SHA1>:master

清理:

git tag -d original-master

自修复以来,请更新您的跟踪分支:

git fetch

这假设“master”是所讨论的分支。如果是其他分支,请将“master”替换为正确的分支名称。

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