zoukankan      html  css  js  c++  java
  • GITHow 如何undo一个已经被push到上游服务器的commit

    原文:http://christoph.ruegg.name/blog/2010/5/5/git-howto-revert-a-commit-already-pushed-to-a-remote-reposit.html

    文章很好啊: 

    重点总结:

           <-> 不影响历史的情况:

            1. 小的错误就立即在本地更改,然后提交,push就ok了,

            2.  git revert commit_id

    其中commit_id可以是历史的任意一个id,而且生成一个这个id相反的更改并且自动commit,自动生成log,push后就完成了。

         <二> 修改历史的情况:(在清除敏感信息的情况下有用)

            1.  清除最近一次commit:

                  a) 直接修改上游服务器上的数据:
                       git push mathnet +dd61ab32^:master  (mathnet 指向上游服务器)

                 b) 本地修改后push的方法:
                            git reset HEAD^ --hard
                            git push mathnet -f

            2. 清除最近一次的上一次commit(任意一个commit都可以)

                   git rebase -i dd61ab32^  (dd61ab32 是任意的一次commit) 
                   然后会弹出用vi编辑器打开的修改里表,用dd删除不应出现的更改行,然后:wq退出完成更改
                  git push mathnet -f

            3. 修正打字

    Note:-f 和 前面命令里面的+号 是a forced non-fastforward push的意思。

     

  • 相关阅读:
    2020软件工程作业02
    2020软件工程作业01
    并发编程—协程
    并发编程—线程
    并发编程—进程
    python网络编程总结
    前端-Javascript
    前端-jQuery
    前端-CSS
    前端-Html
  • 原文地址:https://www.cnblogs.com/bzhao/p/2737533.html
Copyright © 2011-2022 走看看