我团队中的开发人员将更改提交到了错误的远程存储库.我想删除他推送到远程存储库上的此存储库的内容.我不想在当地改变任何东西.
因此我怎么能:
列出远程存储库分支上的提交,以便我可以看到需要删除哪些已推送的提交.
删除远程存储库分支上的每个提交,以便我可以在推送更改之前返回到提交.
我不确定"删除"是否是正确的过程,或者它是否意味着"恢复"但最终我需要远程存储库分支回到他推动他的更改之前的位置.
标记该分支的最后位置
git tag original-master origin/master
Run Code Online (Sandbox Code Playgroud)
检查从服务器获得的内容:
git fetch
git log --all --graph
Run Code Online (Sandbox Code Playgroud)
要么
gitk --all
Run Code Online (Sandbox Code Playgroud)
如果你的标签仍然有意义,那就是远程分支应该在哪里,强制推动它:
git push -f origin original-master:master
Run Code Online (Sandbox Code Playgroud)
如果是另一次提交,请将该提交作为主提交:
git push -f origin <some SHA1>:master
Run Code Online (Sandbox Code Playgroud)
清理:
git tag -d original-master
Run Code Online (Sandbox Code Playgroud)
自修复以来更新跟踪分支:
git fetch
Run Code Online (Sandbox Code Playgroud)
这假定"主"是有问题的分支.如果是另一个,请将"master"替换为正确的分支名称.