詳解IDEA git分支回退指定的歷史版本
場景
當(dāng)我提交了本次修改到本地和遠(yuǎn)程分支后,發(fā)現(xiàn)我本次提交還少了一些修改內(nèi)容,或者說本次修改是完全錯誤的,然而也push到遠(yuǎn)程倉庫去了。如何回退?
問題
已經(jīng)提交到倉庫(本地和遠(yuǎn)程倉庫)的內(nèi)容如何利用IDEA回退到原來指定版本?
方法
有兩種方法:1、Revert操作 2、利用IDEA的Reset Head指針
影響
方法1的Revert操作會當(dāng)成一個新的提交記錄,追加到提交日志當(dāng)中,這樣便保留了原來的提交記錄。(推薦)
方法2的Reset Head指針,會拋棄原來的提交記錄,使Head指針強(qiáng)制指向指定的版本。
實驗環(huán)境
上圖是實驗環(huán)境。本次實驗只操作Readme.md文件。初始化時,master和演示使用的分支“git_demo”都是指向版本一:“版本1:第一次編輯”文本內(nèi)容。當(dāng)前操作分支為git_demo。
說明
本次實驗環(huán)境未必和您的情況完全相符,不過大致思路是相同的。如果您在解決問題過程中遇到?jīng)_突,解決就好了。
方法1:Revert操作
當(dāng)在版本1基礎(chǔ)上進(jìn)行修改內(nèi)容,并提交本地、遠(yuǎn)程倉庫后,發(fā)現(xiàn)提交的內(nèi)容不是我想要的,或者是完全錯誤的,需要回退版本1。
步驟
在想要回退歷史版本上單擊鼠標(biāo)右鍵,選擇“Revert”(見下圖)
這時彈出沖突對話框,雙擊沖突文件以解決沖突。(見下圖)
在解決沖突對話框中,決定最終的版本文件。(見下圖)
重新提交到本地倉庫(見下圖)
Push
同步遠(yuǎn)程倉庫(見下圖)
這種回退的好處在于,如果后悔了“回退”這個操作,也可以回退到?jīng)]有回退之前的版本。因為歷史記錄還保留提交記錄。
方法2:Reset Head指針
當(dāng)在版本1基礎(chǔ)上進(jìn)行修改內(nèi)容,并提交本地、遠(yuǎn)程倉庫后,發(fā)現(xiàn)提交的內(nèi)容不是我想要的,或者是完全錯誤的,需要回退版本1。
步驟在想要回退歷史版本上單擊鼠標(biāo)右鍵,選擇“Reset Current Branch to Here”(見下圖)
在彈出的git reset 參數(shù)類型選擇框中,選擇Hard(見下圖),并Reset
本地倉庫回退到了版本1,需要同步遠(yuǎn)程倉庫,執(zhí)行push操作。
push
后,提示Push拒絕。打開Terminal,在本項目目錄下,輸入git push -f 強(qiáng)制同步遠(yuǎn)程倉庫。
同步后,會發(fā)現(xiàn),git日志丟失了版本1以后的提交。
總結(jié)
Revert操作其實就是回退操作,默認(rèn)是回退到最近一次提交點,也可以回退到指定提交點,就像本次實驗演示的。 Revert的操作其實也是設(shè)置Head指針。 其實比較推薦Revert操作,畢竟可以后悔。方法2中g(shù)it push -f 強(qiáng)制同步操作并不推薦使用,在團(tuán)隊協(xié)作環(huán)境中可能會引發(fā)問題。 在方法2中,選擇git reset參數(shù)選擇的是hard,這種參數(shù)適合場景是我只想回退到指定版本的文本。工作區(qū)里的內(nèi)容可以放棄,版本2完全放棄。其實也可以選擇Mixed。Mixed作用是在設(shè)置Head指針時,保留當(dāng)前工作區(qū)里的文本內(nèi)容。這樣方便直接修改,適合于提交的內(nèi)容有誤,只想修正回來就可以了這種情況。(對比效果見下圖)在回退過程中,可能您的情況不會像本實驗?zāi)敲春唵危簿褪钦f會出現(xiàn)沖突情況。那么只需要解決沖突即可。
結(jié)尾
除了Hard和Mixed選項,其它回退選項的效果演示可以訪問這里: Git Reset 模式演示
回退版本的方法可能還有很多,本次實驗也是片面的。難免有些錯誤遺漏的地方,還請各位老師們不要吝惜各自的才華,懇請老師們多多指正
到此這篇關(guān)于詳解IDEA git分支回退指定的歷史版本的文章就介紹到這了,更多相關(guān)IDEA git分支回退指定歷史版本內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 基于 Python 實踐感知器分類算法2. Python如何批量生成和調(diào)用變量3. ASP.Net Core對USB攝像頭進(jìn)行截圖4. ajax動態(tài)加載json數(shù)據(jù)并詳細(xì)解析5. Python 中如何使用 virtualenv 管理虛擬環(huán)境6. python利用opencv實現(xiàn)顏色檢測7. 通過CSS數(shù)學(xué)函數(shù)實現(xiàn)動畫特效8. ASP.Net Core(C#)創(chuàng)建Web站點的實現(xiàn)9. ASP.NET MVC實現(xiàn)橫向展示購物車10. windows服務(wù)器使用IIS時thinkphp搜索中文無效問題
