zoukankan      html  css  js  c++  java
  • git撤销commit 并保存之前的修改

    撤销并保留修改

    参数 –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的内容,否则,这个操作会让你之前干的活,白干。 
    所以非常不推荐这个方式。

  • 相关阅读:
    [转]nginx+fastcgi+c/c++搭建高性能Web框架
    [转]向facebook学习,通过协程实现mysql查询的异步化
    [转]ReactPHP── PHP版的Node.js
    [转]nodejs npm常用命令
    [LINK]php的三种CLI常量:STDIN,STDOUT,STDERR
    苹果iPhone如何区分港版、国行、水货
    16进制字符串转36进制字符串
    设置apache https服务
    [转]Class 'ThinkLog' not found
    PHP PSR规范
  • 原文地址:https://www.cnblogs.com/wwjldm/p/10456078.html
Copyright © 2011-2022 走看看