濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > git如何撤銷commit的方法(未push)

git如何撤銷commit的方法(未push)

熱門(mén)標(biāo)簽:銀川語(yǔ)音外呼系統(tǒng)中心 高德地圖標(biāo)注常顯 外呼系統(tǒng)號(hào)顯示星號(hào)怎么看 揭陽(yáng)電腦外呼系統(tǒng)公司 suitecrm 地圖標(biāo)注 鶴壁外呼系統(tǒng)公司 華創(chuàng)e路航彩票銷售點(diǎn)地圖標(biāo)注 臨沂ai電銷機(jī)器人招商 承德地圖標(biāo)注公司收費(fèi)

撤銷commit一般用git reset ,語(yǔ)法如下:

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 --softcommit ID>

撤銷gitcommit,不撤銷git add,保留編輯器改動(dòng)代碼

3.使用參數(shù)--hard,如git reset --hard commit ID>——此方式非常暴力,全部撤銷,慎用

撤銷gitcommit,撤銷git add,刪除編輯器改動(dòng)代碼

開(kāi)始撤銷commit的示例:

輸入git log,我們可以看到最近的3次提交,最近一次提交是test3,最早的一次是test1,其中一大串黃色的字母commit id(版本號(hào))

如果嫌輸出信息太多,可加上--pretty=oneline參數(shù),即

git log --pretty=oneline

接下來(lái),按下鍵盤(pán)上的字母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è)版本寫(xiě)N個(gè)^不太現(xiàn)實(shí),我們寫(xiě)成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í)你想起有一行代碼寫(xiě)得很好,想回到test3版本看下,怎么做?

辦法其實(shí)還是有的,只要上面的命令行窗口還沒(méi)有被關(guān)掉,記錄還是在,使用命令git reset --hard commit_id可以回退到指定的版本,比如當(dāng)前例子,我們找到那個(gè)test3的commit id是e09af7ae711e2a79c15144c1e792fb2e27d201ff,然后輸入下面指令就回來(lái)了

git reset --hard e09af7ae711e2a79c15144c1e792fb2e27d201ff

版本號(hào)可以不用寫(xiě)全,輸入前4位或更多也是可以,Git會(huì)自動(dòng)去找,不能只寫(xiě)前一兩位,因?yàn)镚it可能會(huì)找到多個(gè)版本號(hào)。比如,看完test3版本的代碼后,現(xiàn)在想回退到最初test1版本,我們找到那個(gè)test1的commit id是ab7b0c2b6e10a20d524156a81f6d4bc15a4ea7f3,然后輸入下面指令就回來(lái)了

git reset --hard ab7b

最后在Git中,總是有后悔藥可以吃的,Git提供了一個(gè)命令git reflog用來(lái)記錄你的每一次命令,通過(guò)它可以查到每個(gè)commit id,方便你前進(jìn)或者回退到指定的版本

到此這篇關(guān)于git如何撤銷commit的方法(未push)的文章就介紹到這了,更多相關(guān)git撤銷commit內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 解決使用commit提交大文件無(wú)法推送到遠(yuǎn)程庫(kù)問(wèn)題及git rebase使用詳解
  • Git回退代碼到某次commit的實(shí)現(xiàn)方法
  • git修改已commit的注釋信息實(shí)現(xiàn)
  • 淺析git server“丟失”commit問(wèn)題
  • Git發(fā)現(xiàn)git push origin master 報(bào)錯(cuò)的解決方法
  • 解決fatal:remote error:You can''t push to git://github.com/username/*.git問(wèn)題的辦法
  • 解決git誤commit大文件導(dǎo)致不能push問(wèn)題

標(biāo)簽:汕尾 萊蕪 許昌 七臺(tái)河 咸寧 忻州 棗莊 三沙

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《git如何撤銷commit的方法(未push)》,本文關(guān)鍵詞  git,如何,撤銷,commit,的,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《git如何撤銷commit的方法(未push)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于git如何撤銷commit的方法(未push)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    融水| 温泉县| 武平县| 都江堰市| 石棉县| 嘉禾县| 涟源市| 马山县| 东平县| 克什克腾旗| 长沙市| 宁安市| 綦江县| 奉化市| 武胜县| 霞浦县| 凤山县| 阳泉市| 仙居县| 奉化市| 余姚市| 潮安县| 新源县| 绵竹市| 墨江| 灌阳县| 辰溪县| 金坛市| 抚顺县| 呼伦贝尔市| 佳木斯市| 德安县| 敦煌市| 红安县| 庄浪县| 鄂州市| 屯门区| 抚远县| 通许县| 兴山县| 佛山市|