詳解IDEA git分支回退指定的歷史版本
場景
當我提交了本次修改到本地和遠程分支后,發(fā)現(xiàn)我本次提交還少了一些修改內(nèi)容,或者說本次修改是完全錯誤的,然而也push到遠程倉庫去了。如何回退?
問題
已經(jīng)提交到倉庫(本地和遠程倉庫)的內(nèi)容如何利用IDEA回退到原來指定版本?
方法
有兩種方法:1、Revert操作 2、利用IDEA的Reset Head指針
影響
方法1的Revert操作會當成一個新的提交記錄,追加到提交日志當中,這樣便保留了原來的提交記錄。(推薦)
方法2的Reset Head指針,會拋棄原來的提交記錄,使Head指針強制指向指定的版本。
實驗環(huán)境
上圖是實驗環(huán)境。本次實驗只操作Readme.md文件。初始化時,master和演示使用的分支“git_demo”都是指向版本一:“版本1:第一次編輯”文本內(nèi)容。當前操作分支為git_demo。
說明
本次實驗環(huán)境未必和您的情況完全相符,不過大致思路是相同的。如果您在解決問題過程中遇到?jīng)_突,解決就好了。
方法1:Revert操作
當在版本1基礎上進行修改內(nèi)容,并提交本地、遠程倉庫后,發(fā)現(xiàn)提交的內(nèi)容不是我想要的,或者是完全錯誤的,需要回退版本1。
步驟
在想要回退歷史版本上單擊鼠標右鍵,選擇“Revert”(見下圖)
這時彈出沖突對話框,雙擊沖突文件以解決沖突。(見下圖)
在解決沖突對話框中,決定最終的版本文件。(見下圖)
重新提交到本地倉庫(見下圖)
Push
同步遠程倉庫(見下圖)
這種回退的好處在于,如果后悔了“回退”這個操作,也可以回退到?jīng)]有回退之前的版本。因為歷史記錄還保留提交記錄。
方法2:Reset Head指針
當在版本1基礎上進行修改內(nèi)容,并提交本地、遠程倉庫后,發(fā)現(xiàn)提交的內(nèi)容不是我想要的,或者是完全錯誤的,需要回退版本1。
步驟在想要回退歷史版本上單擊鼠標右鍵,選擇“Reset Current Branch to Here”(見下圖)
在彈出的git reset 參數(shù)類型選擇框中,選擇Hard(見下圖),并Reset
本地倉庫回退到了版本1,需要同步遠程倉庫,執(zhí)行push操作。
push
后,提示Push拒絕。打開Terminal,在本項目目錄下,輸入git push -f 強制同步遠程倉庫。
同步后,會發(fā)現(xiàn),git日志丟失了版本1以后的提交。
總結(jié)
- Revert操作其實就是回退操作,默認是回退到最近一次提交點,也可以回退到指定提交點,就像本次實驗演示的。
- Revert的操作其實也是設置Head指針。
- 其實比較推薦Revert操作,畢竟可以后悔。方法2中g(shù)it push -f 強制同步操作并不推薦使用,在團隊協(xié)作環(huán)境中可能會引發(fā)問題。
- 在方法2中,選擇git reset參數(shù)選擇的是hard,這種參數(shù)適合場景是我只想回退到指定版本的文本。工作區(qū)里的內(nèi)容可以放棄,版本2完全放棄。其實也可以選擇Mixed。Mixed作用是在設置Head指針時,保留當前工作區(qū)里的文本內(nèi)容。這樣方便直接修改,適合于提交的內(nèi)容有誤,只想修正回來就可以了這種情況。(對比效果見下圖)
在回退過程中,可能您的情況不會像本實驗那么簡單,也就是說會出現(xiàn)沖突情況。那么只需要解決沖突即可。
結(jié)尾
除了Hard和Mixed選項,其它回退選項的效果演示可以訪問這里: Git Reset 模式演示
回退版本的方法可能還有很多,本次實驗也是片面的。難免有些錯誤遺漏的地方,還請各位老師們不要吝惜各自的才華,懇請老師們多多指正
到此這篇關于詳解IDEA git分支回退指定的歷史版本的文章就介紹到這了,更多相關IDEA git分支回退指定歷史版本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
web高性能開發(fā)系列隨筆 BearRui(AK-47)版
在BlogJava里寫了一些關于高性能WEB開發(fā)的隨筆,因為都是跟前端技術(shù)相關(html,http,js,css等),大家可以參考下。非常值得參考。2010-05-05git?push時卡住的解決方法(長時間不報錯也不自動退出)
這篇文章主要介紹了git?push時卡?。ㄩL時間不報錯也不自動退出),解決方法是通過設置ssh,用ssh來克隆代碼然后再進行提交,本文給大家詳細解決方案,需要的朋友可以參考下2023-01-01archlinux 羅技K380 F1-F12 功能鍵鎖定(實現(xiàn)方法)
這篇文章主要介紹了archlinux 羅技K380 F1-F12 功能鍵鎖定,在windows中羅技K380可以安裝Logitech Options來實現(xiàn)這個Fn鎖定功能,需要的朋友可以參考下2023-04-04