撤销并保留修改

参数 –soft

  1.  # 先进行commit ,之后后悔啦
  2.  $ git commit -am "对首篇报告研究员字段改为author_name"

执行git log

  1.  $ git log
  2.   
  3.  commit 3d6788f577faba5e1d408e372031c81beee79749
  4.  Author: yous <yous.com>
  5.  Date: Thu Dec 14 10:08:36 2017 +0800
  6.  
  7.  添加
  8.   
  9.  commit 5029f0cc08cffb77f7358de7d5534e8f8eacb82e
  10.  Author: yous <yous.com>
  11.  Date: Thu Dec 14 09:52:39 2017 +0800
  12.  
  13.  Revert "Revert "修改过程""
  14.   
  15.  This reverts commit c81f785a06804f5f40b41dedd038efbe6d83f8a8.
  16.   
  17.  commit c81f785a06804f5f40b41dedd038efbe6d83f8a8
  18.  Author: yous <yous.com>
  19.  Date: Thu Dec 14 09:52:22 2017 +0800
  20.   
  21.  Revert "修改"
  22.   
  23.  This reverts commit 5a1d18a032d8c9269613ff14593847f82043e627.
  24.   
  25.  commit 5a1d18a032d8c9269613ff14593847f82043e627

可以看出,第一个是我刚刚commit的,我要撤销,当然是选择第二个;

执行命令git reset --soft <commit>

$ git reset --soft 5029f0cc08cf
  • 之后我们查看下,状态:
  1.  $ git status
  2.  On branch yutao
  3.  Your branch is up-to-date with 'origin/yutao'.
  4.  Changes to be committed:
  5.  (use "git reset HEAD <file>..." to unstage)
  6.   
  7.  modified: dataservice/app/ggservice/v1/event/service/InfoEventService.java

可以看出已经回撤啦,并且保留了修改。

参数 –mixed

  1.  $ git reset --mixed 5029f0cc08cff
  2.  Unstaged changes after reset:
  3.  M dataservice/app/ggservice/v1/event/service/InfoEventService.java
  4.   
  5.  yutao@yutao MINGW64 /d/sts/workspace/ggservice (yutao)
  6.  $ git status
  7.  On branch yutao
  8.  Your branch is up-to-date with 'origin/yutao'.
  9.  Changes not staged for commit:
  10.  (use "git add <file>..." to update what will be committed)
  11.  (use "git checkout -- <file>..." to discard changes in working directory)
  12.  
  13.  modified: dataservice/app/ggservice/v1/event/service/InfoEventService.java
  14.   
  15.  no changes added to commit (use "git add" and/or "git commit -a")

这种方式也是可以的。 
参数--soft--mixed区别:

参数 区别
--soft 会将改动放在缓存区
--mixed 不把改动放在缓存区

git reset –hard <commit_id>

这种方式,我个人是不推荐,它也是撤销,但是不会保留修改。 
除非你确实是不想要刚刚commit的内容,否则,这个操作会让你之前干的活,白干。 
所以非常不推荐这个方式。

git撤销commit 并保存之前的修改的更多相关文章

  1. Git撤销commit消息保留修改

    有时候commit后发现commit信息错了或者是添加了不想commit的内容,但还没有push到远程仓库 这个时候 git reset --soft [commit_id] 就可以回滚到某一个com ...

  2. git撤销commit

    请参考该文章:http://www.cnblogs.com/ningkyolei/p/5026011.html 场景: 不小心commit了一个不应该commit的修改,但是还没有push,想撤销那个 ...

  3. git撤销commit,但未git push的命令

    在git push的时候,有时候我们会想办法撤销git commit的内容 1.找到之前提交的git commit的id git log 找到想要撤销的id 2.git reset –hard id ...

  4. git 撤销commit

    如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 commit 422bc088a7d6c5429f1d0760d008d86c5 ...

  5. 恢复git撤销commit的代码

    使用git reset --hard 是将磁盘文件也删除 时候使用Git工作得小心翼翼,特别是涉及到一些高级操作,例如 reset, rebase 和 merge.甚至一些很小的操作,例如删除一个分支 ...

  6. idea使用 git 撤销commit 原

    填写commit的id  就可以取消这一次的commit

  7. git 撤销提交的文件

    一.问题 近期在使用git时遇到一个问题,就是在git上传文件时,将一个100兆的大文件添加到了git,并执行了push操作,这时在上传完毕后,会提示这个错误 Large files detected ...

  8. [转]git commit之后,想撤销commit

    本文转自:http://www.cnblogs.com/lfxiao/p/9378763.html 写完代码后,我们一般这样 git add . //添加所有文件 git commit -m &quo ...

  9. git commit之后,想撤销commit

    原文 写完代码后,我们一般这样 git add . //添加所有文件 git commit -m "本功能全部完成" 执行完commit后,想撤回commit,怎么办? 这样凉拌: ...

随机推荐

  1. jQuery中删除方法empty(),remove()和detach()的区别

    empty():清空匹配的元素集合中所有的子节点,自身节点和事件都未被删除. remove():这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素.但除了这个元素本身 ...

  2. runners

    saltstack return 除了在配置文件中可以定义外(太繁琐),还可以自定义retunner,当然,这需要通过代码实现了,实现方式和自定义的pillar和grains类似,步骤如下: #创建_ ...

  3. kvm动态添加硬盘

    1.创建硬盘. qemu-img create -f qcow2 /data/data_root/vm-images/xxxx.qcow2 20G 2.添加硬盘 方式1.动态添加: virsh att ...

  4. Nginx+Keepalived(二)

    Linux CentOS7安装Nginx 1.gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境. yum install gcc-c++ 2.PCRE pcre- ...

  5. C#使用File.Create()创建文件后资源被占用

    由于文件被占用不能读写,所以报错“另一个程序正在使用此文件进程无法访问” 解决方法是在创建文件后立即Dispose掉 File.Create(path).Dispose();

  6. java之JUC

    1.JUC简介 java的JUC即java.util.concurrent包,

  7. java PDF添加图层,支持多页图层添加

     java PDF添加图层,支持多页图层添加 代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...

  8. RFID概述

    自动识别技术的本质在于利用被识别物理对象的一些具有辨识度的特征来对物理对象进行区分和识别.因此,这些具有辨识度的特征可以是物理对象自带的特征,如指纹,人脸,语言,视网膜,心跳等,也可以是通过第三方赋予 ...

  9. python相关注册登录方式

    1.使用django自带功能实现登录/退出登录 使用django自带登录功能,前提生成用户(用户注册)使用的是django自带的user,或称models中用户表继承于django自带的user 1. ...

  10. Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException

    Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. M ...