git如何撤銷commit的方法(未push)
撤銷commit一般用git reset ,語法如下:
git reset [ --mixed | --soft | --hard] [<commit ID>]
1.使用參數(shù)--mixed(默認(rèn)參數(shù)),如git reset --mixed <commit ID>或git reset <commit ID>
撤銷git commit,撤銷git add,保留編輯器改動(dòng)代碼
2.使用參數(shù)--soft,如git reset --soft<commit ID>
撤銷gitcommit,不撤銷git add,保留編輯器改動(dòng)代碼
3.使用參數(shù)--hard,如git reset --hard <commit ID>——此方式非常暴力,全部撤銷,慎用
撤銷gitcommit,撤銷git add,刪除編輯器改動(dòng)代碼
開始撤銷commit的示例:
輸入git log,我們可以看到最近的3次提交,最近一次提交是test3,最早的一次是test1,其中一大串黃色的字母
是commit id
(版本號(hào))
如果嫌輸出信息太多,可加上--pretty=oneline
參數(shù),即
git log --pretty=oneline
接下來,按下鍵盤上的字母q退出git日志,準(zhǔn)備進(jìn)行撤銷commit
Git必須知道當(dāng)前版本是哪個(gè)版本,在Git中,用HEAD表示當(dāng)前版本,也就是最新的提交commit id,上一個(gè)版本就是HEAD^(或者HEAD~1),上上一個(gè)版本就是HEAD^^(或者HEAD~2),同理往上N個(gè)版本寫N個(gè)^不太現(xiàn)實(shí),我們寫成HEAD~100。
現(xiàn)在,我們要把當(dāng)前版本test3上一個(gè)版本test2,就可以使用git reset命令:git reset --hard HEAD^,再查看日志,發(fā)現(xiàn)已經(jīng)剩下2個(gè)commit版本了
git reset --hard HEAD^
最新的那個(gè)版本test3已經(jīng)看不到了,此時(shí)你想起有一行代碼寫得很好,想回到test3版本看下,怎么做?
辦法其實(shí)還是有的,只要上面的命令行窗口還沒有被關(guān)掉,記錄還是在,使用命令git reset --hard commit_id可以回退到指定的版本,比如當(dāng)前例子,我們
找到那個(gè)test3的commit id是e09af7ae711e2a79c15144c1e792fb2e27d201ff,然后輸入下面指令就回來了
git reset --hard e09af7ae711e2a79c15144c1e792fb2e27d201ff
版本號(hào)可以不用寫全,輸入前4位或更多也是可以,Git會(huì)自動(dòng)去找,不能只寫前一兩位,因?yàn)镚it可能會(huì)找到多個(gè)版本號(hào)。比如,看完test3版本的代碼后,現(xiàn)在想回退到最初test1版本,我們
找到那個(gè)test1的commit id是ab7b0c2b6e10a20d524156a81f6d4bc15a4ea7f3,然后輸入下面指令就回來了
git reset --hard ab7b
最后在Git中,總是有后悔藥可以吃的,Git提供了一個(gè)命令git reflog
用來記錄你的每一次命令,通過它可以查到每個(gè)commit id,方便你前進(jìn)或者回退到指定的版本
到此這篇關(guān)于git如何撤銷commit的方法(未push)的文章就介紹到這了,更多相關(guān)git撤銷commit內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在vscode中正確使用正則表達(dá)式進(jìn)行文檔內(nèi)容的替換編輯
正則表達(dá)式是一種強(qiáng)大的模式匹配工具,它具有廣泛的應(yīng)用,包括數(shù)據(jù)清洗、文本處理、文件搜索等方面,這篇文章主要給大家介紹了關(guān)于如何在vscode中正確使用正則表達(dá)式進(jìn)行文檔內(nèi)容的替換編輯,需要的朋友可以參考下2023-12-12關(guān)于base64編碼的原理及實(shí)現(xiàn)方法分享
我們的圖片大部分都是可以轉(zhuǎn)換成base64編碼的data:image。 這個(gè)在將canvas保存為img的時(shí)候尤其有用2012-03-03