zoukankan      html  css  js  c++  java
  • Git 撤销commit文件 和 回退push的文件

    https://www.jianshu.com/p/491a14d414f6

    第一种情况 : 撤销commit文件

    我们先查看一下log日志:
    两种查看方法:
    1、git log
      显示从近到远的日志记录,按向下键来查看更多,按 Q 键退出查看日志
    2、git log --pretty=oneline
      简洁显示日志记录

    当然还有更多查看 log 的方法,就不展示了,自行百度吧.

     
    0dc5d383d74bbe42af78469e4c4ae5f.png

    前五次提交是已经 push 到远程仓库的,第六次是 commit 的,然后我突然不想 commit 了,我想撤销,好嘞, git 命令嗨起来

    git reset --hard 提交id

     
    63e68b00b1a9fce4c6b32fc98497f87.png

    意思就是,你要撤销第六次 commit ,你就要把 HEAD 指向 第五次,所以 reset 一下 HEAD 就好啦
    注意:工作空间的代码的改动就没啦
    如果想保留工作空间的代码只是撤销commit,请执行下面的命令:
    git reset --soft HEAD^

    HEAD^的意思是上一个版本,也可以写成HEAD~1
    如果你进行了2次commit,想都撤回,可以使用HEAD~2

    ps : git status 查看当前文件的状态

     
    862fcb9a80d5870d6e2d90d826e0732.png

    至于这几个参数:

    --mixed
    意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    --soft
    不删除工作空间改动代码,撤销commit,不撤销git add .
    --hard
    删除工作空间改动代码,撤销commit,撤销git add .
    注意完成这个操作后,就恢复到了上一次的commit状态。

    [root@localhost demo]# git log --pretty=oneline
    523ebcf06cff1b5699bbc34fa67b3363757557e7 add show_dup fun to show all segs of udp
    1af49a8e67d5d4907ab14d9d541dfb29e8974687 add ip reassembly project and support arp
    88a212f8ffac44dd36685c7f02aef3c03707e908 adjust offoad parameter
    a51e6f5a16a2a048b390e545da6ca887721fd3e5 test tcp offload
    97abdc76f71f5aee491657130cc48bfd8bc288a4 add tcp client
    840e0cbbefcd25d3d26716e484332446c2624791 add simple web based on dpdk
    ebf8d5f15328528a08e25b09c1fe7d3c322830cb add simple web based on dpdk
    65fc79b3fd16ab75d944d7461ac46572f240d686 add simple web based on dpdk
    49b64992f8751b9495f11445449d27cb5f12f32c rm  dpdk-pingpong build
    c7eb0a3790dafed016f9476468b77c9069a4bd9e rm  dpdk-pingpong build
    c737808f40ef0ee4aae7b1dcba9873bde258307c rm  dpdk-pingpong build
    40334174fb2046ab9fa4a93f11a28827c843fbd4 add dpdk-pingpong  dpdk-flow  dpdk-ring-ping
    0455bc817b810c41ddd4571c9ec249b3ddc82431 rm dpdk-pingpong  dpdk-flow  dpdk-ring-ping
    82bfe27de59e4b59a88cf88a2ee5eb453d6a0ac3 add dpdk test demo
    3f976c6399d110600aac8ee7341b7d428cf16920 Merge branch 'master' of https://github.com/magnate3/dpdk
    6bef1003b3156eacd2f7fddad33a714cd870dcca add dpdk test demo
    b5d46b7f4d66e8cc2c03576638c7deba1e52b788 Initial commit
    [root@localhost demo]# git reset --soft HEAD^
    fatal: Cannot do a soft reset in the middle of a merge.
    [root@localhost demo]# 

    第二种情况 : 撤销push文件

    方法一:

    第一步: git log --pretty=oneline   查看当前提交的日志
    第二步: git reset --soft XXX   XXX是commitID(d6cdbba417....) 回退当前工作空间的上一个版本,并且保留代码更改
    第三步: git log --pretty=oneline   再次查看当前提交的日志,确认是否成功撤销,当然,你也可以不看,基本上都会成功,保险一下,看看呗
    第四步: git push origin master --force   强制提交当前版本号,以达到撤销版本号的目的.必须添加参数force进行强制提交,否则会提交失败,报错原因:本地项目版本号低于远端仓库版本号。(master 代表分支名称,默认是 master,或者也可以直接用 git push --force)

    注意:这种强制提交的方法只有owner的时候可以用

     
    634e408c2f8e577ea00deeae337c3d6.png

    你看,github上第五次提交也撤回咯

     

     
  • 相关阅读:
    segnet 编译与测试
    ubuntu(已经配置了python2+opencv)简易配置python3的opencv:
    OCR光学字符识别--STN-OCR 测试
    阿里云图形界面
    win10+UEFI下u盘安装ubuntu16.04
    ubuntu16.04+cuda8.0+cudnn5.0+caffe
    Angular 组件通讯、生命周期钩子 小结
    Angular 路由⑦要素
    关于克隆gitlab项目的一些 问题列表
    RxJS学习笔记
  • 原文地址:https://www.cnblogs.com/dream397/p/13729260.html
Copyright © 2011-2022 走看看