如何删除推送到远程存储库的提交?

当地分行: -

'特征/ 100'

和远程分支机构: -

'主'

“版本2”

意外,

  • 我已经将我的功能分支的'功能/ 100'合并到了主设备上
  • 还将其推送到远程存储库。
  • 但在真正的“ 功能/ 100”应该已经被合并到远程分支“ 版本2”

    我如何修复它(部分) : -

    我已将功能分支的“ 功能/ 100 ”合并到远程分支“ Version2 ”并将其推送到服务器。

    git checkout Version2
    git merge --squash feature/100
    git add .
    git commit -m 'New message'
    

    但我想删除我已合并并提交给主分支的最后一个推送。 怎么样?

    注意我只有一个在这个项目上工作..所以,即使推送提交被删除,它不会伤害任何人


    你可以:

    恢复您的更改

    git revert HEAD

    这将创建一个新的提交,恢复您刚刚推送给主控的更改。 这是最安全的选择,因为其他人可能已经拉下了您推动的变更。

    更改您的提交历史并强制推送更改

    您可以删除刚刚推送的提交:

    git reset --hard HEAD~1

    git push origin master --force

    除非您确定没有人从主服务器取消您的更改,否则您不希望这样做。

    有关更多信息,请参阅从Git中的分支中删除提交


    您可以恢复主服务器上的合并提交。 当你以后真的想合并分支时,你必须首先恢复回复。 有关详细说明,请参阅此处:

    http://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt


    可能已经太晚了,但是如果您想通过一次提交来重新推送推送的分支( master ?),请发出以下命令:

    git push origin +master^:master
    

    +使得强制推送, master^描述前一个提交。 :master推送到远程主分支。

    链接地址: http://www.djcxy.com/p/4063.html

    上一篇: How to delete commit that is pushed to the remote repository?

    下一篇: Code Contracts trying to get build errors instead of warnings