【原】git怎样打消commit(未push)

【原】git怎样打消commit(未push)

打消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>

打消git commit,不打消git add,保存编辑器修改代码

3.运用参数–hard,如git reset –hard <commit ID>——此体式格局异常暴力,悉数打消,慎用

打消git commit,打消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,轻易你行进或许回退到指定的版本

 

Up Next:

完全明白CORS跨域道理

完全明白CORS跨域道理