美文网首页Git
git reset 撤回本地仓库、远程仓库的commit操作

git reset 撤回本地仓库、远程仓库的commit操作

作者: 背锅填坑交给我 | 来源:发表于2019-10-17 19:52 被阅读0次

    0x00 场景

    提交代码到git时,想撤回某些已经commit的代码,这些commit甚至已经push到了远程仓库。

    0x01 命令reset

    命令格式:git reset --soft xxx

    xxx代表回退到哪个版本

    1. 可以通过git log 查看commitId,  例如9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3
    
    2. 可以用HEAD表示。
    HEAD 在reset操作时常用, 表示当前版本。
    HEAD^的意思是最近一次commit,也可以写成HEAD~1,HEAD~2则表示倒数第二个commit。
    

    reset的三种模式:

    --mixed 
    默认参数,不删除本地仓库有改动代码,撤销commit,并且撤销git add .操作。
    
    --soft  
    不删除本地仓库有改动代码,撤销commit,不撤销git add .操作。
    
    --hard (慎用,会丢失代码)
    删除本地仓库有改动的代码,撤销commit,撤销git add .操作。恢复到指定的commit状态。
    

    0x02 场景

    场景1: 将本地仓库回退到某次commit

    1. git log查看版本,想要回退到9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3这个提交
    
    2. git reset --soft  9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3
    此时,会有一些未被commit的代码,可以修改之后,重新提交。
    

    场景2: 将远程仓库回退到某次commit,基于某次commit做commit

    1. 查看commitId
    git log查看版本,想要回退到9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3这个提交
    
    2. 本地回退
    git reset --soft 9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3
    此时,会有一些未被commit的代码,可以修改之后,重新提交。
    
    3. 提交本地,强制推到远程
    git add . 
    git commit -a -m “xx”
    git push -f origin jiangu 
    

    相关文章

      网友评论

        本文标题:git reset 撤回本地仓库、远程仓库的commit操作

        本文链接:https://www.haomeiwen.com/subject/agnvmctx.html