場(chǎng)景
當(dāng)我提交了本次修改到本地和遠(yuǎn)程分支后,發(fā)現(xiàn)我本次提交還少了一些修改內(nèi)容,或者說(shuō)本次修改是完全錯(cuò)誤的,然而也push到遠(yuǎn)程倉(cāng)庫(kù)去了。如何回退?
問(wèn)題
已經(jīng)提交到倉(cāng)庫(kù)(本地和遠(yuǎn)程倉(cāng)庫(kù))的內(nèi)容如何利用IDEA回退到原來(lái)指定版本?
方法
有兩種方法:1、Revert操作 2、利用IDEA的Reset Head指針
影響
方法1的Revert操作會(huì)當(dāng)成一個(gè)新的提交記錄,追加到提交日志當(dāng)中,這樣便保留了原來(lái)的提交記錄。(推薦)
方法2的Reset Head指針,會(huì)拋棄原來(lái)的提交記錄,使Head指針強(qiáng)制指向指定的版本。
實(shí)驗(yàn)環(huán)境
上圖是實(shí)驗(yàn)環(huán)境。本次實(shí)驗(yàn)只操作Readme.md文件。初始化時(shí),master和演示使用的分支“git_demo”都是指向版本一:“版本1:第一次編輯”文本內(nèi)容。當(dāng)前操作分支為git_demo。
說(shuō)明
本次實(shí)驗(yàn)環(huán)境未必和您的情況完全相符,不過(guò)大致思路是相同的。如果您在解決問(wèn)題過(guò)程中遇到?jīng)_突,解決就好了。
方法1:Revert操作
當(dāng)在版本1基礎(chǔ)上進(jìn)行修改內(nèi)容,并提交本地、遠(yuǎn)程倉(cāng)庫(kù)后,發(fā)現(xiàn)提交的內(nèi)容不是我想要的,或者是完全錯(cuò)誤的,需要回退版本1。
步驟
在想要回退歷史版本上單擊鼠標(biāo)右鍵,選擇“Revert”(見(jiàn)下圖)
這時(shí)彈出沖突對(duì)話框,雙擊沖突文件以解決沖突。(見(jiàn)下圖)
在解決沖突對(duì)話框中,決定最終的版本文件。(見(jiàn)下圖)
重新提交到本地倉(cāng)庫(kù)(見(jiàn)下圖)
Push
同步遠(yuǎn)程倉(cāng)庫(kù)(見(jiàn)下圖)
這種回退的好處在于,如果后悔了“回退”這個(gè)操作,也可以回退到?jīng)]有回退之前的版本。因?yàn)闅v史記錄還保留提交記錄。
方法2:Reset Head指針
當(dāng)在版本1基礎(chǔ)上進(jìn)行修改內(nèi)容,并提交本地、遠(yuǎn)程倉(cāng)庫(kù)后,發(fā)現(xiàn)提交的內(nèi)容不是我想要的,或者是完全錯(cuò)誤的,需要回退版本1。
步驟在想要回退歷史版本上單擊鼠標(biāo)右鍵,選擇“Reset Current Branch to Here”(見(jiàn)下圖)
在彈出的git reset 參數(shù)類型選擇框中,選擇Hard(見(jiàn)下圖),并Reset
本地倉(cāng)庫(kù)回退到了版本1,需要同步遠(yuǎn)程倉(cāng)庫(kù),執(zhí)行push操作。
push
后,提示Push拒絕。打開(kāi)Terminal,在本項(xiàng)目目錄下,輸入git push -f 強(qiáng)制同步遠(yuǎn)程倉(cāng)庫(kù)。
同步后,會(huì)發(fā)現(xiàn),git日志丟失了版本1以后的提交。
總結(jié)
- Revert操作其實(shí)就是回退操作,默認(rèn)是回退到最近一次提交點(diǎn),也可以回退到指定提交點(diǎn),就像本次實(shí)驗(yàn)演示的。
- Revert的操作其實(shí)也是設(shè)置Head指針。
- 其實(shí)比較推薦Revert操作,畢竟可以后悔。方法2中g(shù)it push -f 強(qiáng)制同步操作并不推薦使用,在團(tuán)隊(duì)協(xié)作環(huán)境中可能會(huì)引發(fā)問(wèn)題。
- 在方法2中,選擇git reset參數(shù)選擇的是hard,這種參數(shù)適合場(chǎng)景是我只想回退到指定版本的文本。工作區(qū)里的內(nèi)容可以放棄,版本2完全放棄。其實(shí)也可以選擇Mixed。Mixed作用是在設(shè)置Head指針時(shí),保留當(dāng)前工作區(qū)里的文本內(nèi)容。這樣方便直接修改,適合于提交的內(nèi)容有誤,只想修正回來(lái)就可以了這種情況。(對(duì)比效果見(jiàn)下圖)
在回退過(guò)程中,可能您的情況不會(huì)像本實(shí)驗(yàn)?zāi)敲春?jiǎn)單,也就是說(shuō)會(huì)出現(xiàn)沖突情況。那么只需要解決沖突即可。
結(jié)尾
除了Hard和Mixed選項(xiàng),其它回退選項(xiàng)的效果演示可以訪問(wèn)這里: Git Reset 模式演示
回退版本的方法可能還有很多,本次實(shí)驗(yàn)也是片面的。難免有些錯(cuò)誤遺漏的地方,還請(qǐng)各位老師們不要吝惜各自的才華,懇請(qǐng)老師們多多指正
到此這篇關(guān)于詳解IDEA git分支回退指定的歷史版本的文章就介紹到這了,更多相關(guān)IDEA git分支回退指定歷史版本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- idea手動(dòng)刷新git分支的詳細(xì)教程
- IDEA怎么切換Git分支的實(shí)現(xiàn)方法
- idea+git合并分支解決沖突及詳解步驟
- idea切換git地址并刷新右下角git分支
- idea2020最新版配置maven的方法
- IDEA 重新導(dǎo)入依賴maven 命令 reimport的方法
- 解決idea git切換多個(gè)分支后maven不生效的問(wèn)題