• Git撤销命令的使用


    个人博客地址

    一、git commit撤回

    此时代码只是commit到了本地,还没有push到远程仓库,撤销方式如下

    git reset --soft HEAD^
    

    个人理解此命令的意思是撤销到上一个版本 HEAD^

    git reset --soft HEAD~1
    

    个人理解此命令的意思也是是撤销到上一个版本 HEAD~1,但是如果写成HEAD~2就是撤销上两个版本。比第一种灵活一点。
    其次要注意:
    ::: warning
    两个命令仅仅是撤回commit操作,你写的代码依然保留,你可以修改后再次commit提交。
    :::
    剩余几个参数:
    --mixed
    意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    --soft
    不删除工作空间改动代码,撤销commit,不撤销git add .
    --hard
    删除工作空间改动代码,撤销commit,撤销git add .
    注意完成这个操作后,就恢复到了上一次的commit状态。
    顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:

    git commit --amend  
    

    此时会进入默认vim编辑器,修改注释完毕后保存就好了。
    参考博客园

    二、git push撤回

    此时代码已经push到远程仓库了,如果想撤销也是可以的。
    ::: warning
    首先确认你要修改的分支不是被保护的,或者你的权限足够大,否则一通操作后发现没用!!!
    :::
    正式开始,咱们使用的有两个命令

    git reset --hard
    git reset --soft
    

    前者表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交。
    后者直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码,所以使用是一定要小心,想清楚。
    然后再来看回退,如果只是回退到上个版本可以使用

    git reset --soft xx版本号xxx
    git reset --hard xx版本号xxx
    

    也可以使用

    git reset --soft HEAD~1 
    git reset --hard HEAD~1
    

    当执行完上面的命令后,我们就可以做很多操作,比如撤销git add命令:

    git rm --cached
    

    至于这个命令可以参考GIT代码在GIT ADD之后如何取消
    经过上面操作后,我们本地的代码已经达到我们想要的结果了,这时我们可以进行git commit后,再使用git push origin 分支名 就可以将新的代码覆盖掉远程仓库版本代码,
    这样子就达到了撤销远程仓库代码一样的效果,但是这时我们可能会报错,因为本地的代码版本低于远程分支的版本,所以要想覆盖掉它,必须使用force

    git push origin 分支 --force
    

    但是,如果push的分支是被保护的,我们还是强制推不上的!!!
    参考CSDN

    By xionghaizhi
  • 相关阅读:
    UESTC 250 windy数 数位dp
    hdu 3555 bomb 数位dp
    hdu 2089 不要62 数位dp入门
    poj 3740 Easy Finding 精确匹配
    codeforces 589F. Gourmet and Banquet 二分+网络流
    hdu 3572 Escape 网络流
    hdu 3572 Task Schedule 网络流
    POJ 1823 Hotel 线段树
    2016年,机器学习和人工智能领域有什么重大进展?
    【由浅入深的VR技术之旅】初学VR要解决的三个核心技术问题
  • 原文地址:https://www.cnblogs.com/xionghaizhi/p/14381860.html
Copyright © 2020-2023  润新知