撤销commit一般用git reset ,语法如下:
git reset [ --mixed | --soft | --hard] [<commit ID>]
1.使用参数--mixed(默认参数),如git reset --mixed <commit ID>或git reset <commit ID>
撤销git commit,撤销git add,保留编辑器改动代码
2.使用参数--soft,如git reset --soft<commit ID>
撤销gitcommit,不撤销git add,保留编辑器改动代码
3.使用参数--hard,如git reset --hard <commit ID>——此方式非常暴力,全部撤销,慎用
撤销gitcommit,撤销git add,删除编辑器改动代码
开始撤销commit的示例:
输入git log,我们可以看到最近的3次提交,最近一次提交是test3,最早的一次是test1,其中一大串黄色的字母
是commit id
(版本号)
如果嫌输出信息太多,可加上--pretty=oneline
参数,即
git log --pretty=oneline
接下来,按下键盘上的字母q退出git日志,准备进行撤销commit
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交commit id,上一个版本就是HEAD^(或者HEAD~1),上上一个版本就是HEAD^^(或者HEAD~2),同理往上N个版本写N个^不太现实,我们写成HEAD~100。
现在,我们要把当前版本test3上一个版本test2,就可以使用git reset命令:git reset --hard HEAD^,再查看日志,发现已经剩下2个commit版本了
git reset --hard HEAD^
最新的那个版本test3已经看不到了,此时你想起有一行代码写得很好,想回到test3版本看下,怎么做?
办法其实还是有的,只要上面的命令行窗口还没有被关掉,记录还是在,使用命令git reset --hard commit_id可以回退到指定的版本,比如当前例子,我们
找到那个test3的commit id是e09af7ae711e2a79c15144c1e792fb2e27d201ff,然后输入下面指令就回来了
git reset --hard e09af7ae711e2a79c15144c1e792fb2e27d201ff
版本号可以不用写全,输入前4位或更多也是可以,Git会自动去找,不能只写前一两位,因为Git可能会找到多个版本号。比如,看完test3版本的代码后,现在想回退到最初test1版本,我们
找到那个test1的commit id是ab7b0c2b6e10a20d524156a81f6d4bc15a4ea7f3,然后输入下面指令就回来了
git reset --hard ab7b
最后在Git中,总是有后悔药可以吃的,Git提供了一个命令git reflog
用来记录你的每一次命令,通过它可以查到每个commit id,方便你前进或者回退到指定的版本
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 腾讯网易打起来了!网易新游开喷腾讯太子:王者,你不是我的荣耀
- 摩登澡堂
- 冯晓泉.1995-遥远的城镇遥远的人【京文】【WAV+CUE】
- 蒋志光.1990-相逢·走【永高创意】【WAV+CUE】
- 挑战者 Challengers
- 群星.2014-电影歌曲101.6CD【环球】【WAV+CUE】
- 母亲的直觉 Mothers' Instinct
- 凶猛动物在哪里怎么接?任务完成攻略分享
- 原画壁纸及美图第226期,无水印可自取
- 七圣召唤打牌怎么玩?打牌玩法流程介绍
- 恋爱视觉小说游戏《机械恋心》上架Steam!本月发售
- 星穹铁道2.2匹诺康尼大剧院梦境迷钟解密合集 匹诺康尼大剧院迷钟修复攻略
- 中唱唱片群星《好歌珍藏-士兵旋律》2CDWAV
- 出发吧麦芬各职业特点解析 玩什么职业好
- 崩坏星穹铁道梦中之梦12平民满星攻略 梦中之梦12阵容搭配分享