作者簡(jiǎn)介
目錄
1.git分區(qū)
2.未commit,進(jìn)行回滾
3.commit未push,進(jìn)行回滾
3.1.undo commit
3.2.reset
4.已commit&push,進(jìn)行回滾
1.git分區(qū)
git的版本回滾其實(shí)就是回滾不同的分區(qū),所以在聊git回滾之前我們有必要簡(jiǎn)單了解一下git的分區(qū)。git在本地有三大分區(qū):工作區(qū)、暫存區(qū)、版本庫(kù)。
工作區(qū):正在編寫,還未add的部分,紅色。
暫存區(qū):add后的代碼,綠色。
版本庫(kù):commit后的代碼,灰色。
在IDEA中,在loacl changes中可以看到在工作區(qū)中和暫存區(qū)中的內(nèi)容:
版本庫(kù)中的內(nèi)容可以從log中看出來,log中可以看到commit test這條提交的分支是本地的main分支,如果是已經(jīng)同步到遠(yuǎn)端的提交分支會(huì)顯示為origin/main:
2.未commit,進(jìn)行回滾
已經(jīng)add到暫存區(qū),但是未commit到本地版本庫(kù)的改動(dòng)有兩種:
-
新增的文件
-
修改的文件
新增的文件直接刪除即可,如果是修改的文件,使用roll back來回滾。在local change里面,選擇想要rollback的文件即可:
也可以直接右擊要rollback的文件然后rollback也行。
3.commit未push,進(jìn)行回滾
3.1.undo commit
commit到本地版本庫(kù)并且還未push的代碼,可以在log里右擊單次提交進(jìn)行undo commit:
需要注意的是undo commit只能從最后一次commit開始回滾,undo commit后會(huì)要求選擇一個(gè)變更列表來存放回滾后的內(nèi)容,可以自己新建一個(gè),比如此處的commit test,也可以在下拉框里選擇一個(gè)已經(jīng)存在的,如果是自己新建的變更列表,勾選了set active選項(xiàng),后續(xù)的變動(dòng)也會(huì)存放到該變更列表中:
可以看到多了一個(gè)變更列表:
變更列表有什么用喃?其實(shí)變更列表可以把它視為一個(gè)命名空間,就是用來做資源隔離的,在進(jìn)行commit的時(shí)候需要下拉選擇不同的變更列表來進(jìn)行提交:
3.2.reset
有時(shí)候我們需要直接將本地的代碼回滾到版本庫(kù)的某一個(gè)版本,這時(shí)候可以使用reset來進(jìn)行回滾。reset有幾種模式:
-
soft,將版本回滾,工作區(qū)不動(dòng),暫存區(qū)=原來的+回滾后和回滾前的版本差異。
-
mixed,將版本回滾,回滾到了所有 git add 和 git commit 的命令執(zhí)行之前。暫存區(qū)變?yōu)榭眨兏康搅斯ぷ鲄^(qū)。
-
hard,將版本回滾,將所有工作區(qū)和暫存區(qū)的文件修改全部清空,是真正的覆蓋,不能找回了。
-
keep,將版本回滾,將所有commit的內(nèi)容丟棄掉,未commit的內(nèi)容保留。
在log上選擇要回滾到的具體版本:
reset時(shí)會(huì)要求選擇回滾的模式:
4.已commit&push,進(jìn)行回滾
對(duì)commit&push的內(nèi)容進(jìn)行回滾其實(shí)就是對(duì)遠(yuǎn)端倉(cāng)庫(kù)的代碼版本進(jìn)行回滾,在實(shí)際開發(fā)中偶爾會(huì)將內(nèi)容誤推送到了遠(yuǎn)端倉(cāng)庫(kù)上去。比如commit的message寫錯(cuò)了,查看log的時(shí)候才發(fā)現(xiàn),比如不小心將本地還沒有開發(fā)完成的代碼推送到遠(yuǎn)端倉(cāng)庫(kù)了,由或者合并沖突或者分支的時(shí)候合并錯(cuò)了......等等這些情況都要我們對(duì)遠(yuǎn)端倉(cāng)庫(kù)的代碼進(jìn)行回滾。
回滾的方式其實(shí)很簡(jiǎn)單,就是將本地的代碼版本回滾到指定版本(至于是用revert還是reset,看自己),然后將本地的版本用git push -f強(qiáng)推到遠(yuǎn)端。
在IDEA中可以在terminal中執(zhí)行指令:文章來源:http://www.zghlxwxcb.cn/news/detail-713178.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-713178.html
到了這里,關(guān)于詳解IDEA git 版本回滾的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!