zoukankan      html  css  js  c++  java
  • git撤销提交到remote的commit

    Reseting remote to a certain commit

    Assuming that your branch is called master both here and remotely, and that your remote is called origin you could do:

     git reset --hard <commit-hash>
     git push -f origin master
    

    However, you should avoid doing this if anyone else is working with your remote repository and has pulled your changes.

    In that case, it would be better to revert the commits that you don't want, then pushing as normal.

    Update:
    you've explained below that other people have pulled the changes that you've pushed,
    so it's better to create a new commit that reverts all of those changes.
    There's a nice explanation of your options for doing this in this answer from Jakub Narębski
    Which one is most convenient depends on how many commits you want to revert, and which method makes most sense to you.

    Since from your question it's clear that you have already used git reset --hard to reset your master branch,
    you may need to start by using git reset --hard ORIG_HEAD to move your branch back to where it was before.
    (As always with git reset --hard, make sure that git status is clean, that you're on the right branch
    and that you're aware of git reflog as a tool to recover apparently lost commits.)
    You should also check that ORIG_HEAD points to the right commit, with git show ORIG_HEAD.

    总结:

    如果你推送到remote的commit没有被其他人pull过,那么你可以使用

    git reset --hard <commit-hash>
    git push -f origin master

    来撤销之前提交的commit

    但是如果有其他人同步过你的push,那么你可以在本地使用revert来还原你提交的commit,然后生成一个新的commit然后再推送到远端

  • 相关阅读:
    3813: 奇数国|树状数组|欧拉函数
    利用Perlin nosie 完毕(PS 滤镜—— 分成云彩)
    Qt QImageReader 相似乎有bug
    android studio 更新Gradle版本号方法
    Junit测试
    POI导出
    Properties文件读取
    md5加密
    递归找出文件夹里面所有文件
    java FileReader/FileWriter读写文件
  • 原文地址:https://www.cnblogs.com/chucklu/p/4661149.html
Copyright © 2011-2022 走看看