詳解IDEA Git Reset 選項說明
1 . 目標(biāo)
演示下圖的git reset 各選項的效果。
2. Git Reset操作說明
圖中說明:
his will reset the current branch head to the selected commit, and update the working tree and the index accoding to the seleted mode.
意思是:該操作會重置當(dāng)前分支指針到所選擇的提交點,并且更新記錄點和根據(jù)所選選項更新index狀態(tài)。
這句話意味著該項操作會影響兩件事:提交的記錄 和 當(dāng)前工作區(qū)中的文件狀態(tài)。
3. 環(huán)境說明
為了簡化演示,本次使用master分支。master分支初始狀態(tài)為下圖所示:
本篇各個選項的效果演示均在“回退到版本1”這個需求下進(jìn)行。
彈出選項框
4. 各選項效果說明
4.1 Soft
Soft選項:在選擇的回退點之后的所有更改將會保留并被git追蹤下來。這就意味著可以在 Version Control 的 Local Changes 面板中查看到它們。
創(chuàng)建新文件demo.txt 并index。使得demo.txt文件能夠被git追蹤版本。
此時我們是在版本2的工作區(qū)基礎(chǔ)上進(jìn)行創(chuàng)建的demo.txt,此時我們想要回退到版本1,并使用Soft模式回退。回退的結(jié)果如下:
4.2 Mixed
Mixed模式:在選擇的回退點之后的所有更改將會保留但不會被git追蹤下來。
創(chuàng)建新文件demo.txt 并index。使得demo.txt文件能夠被git追蹤版本。
此時我們是在版本2的工作區(qū)基礎(chǔ)上進(jìn)行創(chuàng)建的demo.txt,此時我們想要回退到版本1,并使用Mixed模式回退。效果如下:
4.3 Hard
Hard模式:在選擇的回退點之后的所有更改都會被丟棄。(包括被追蹤的和已提交的文件)
在版本2基礎(chǔ)上新增文字,形成未提交的版本3.
回退到版本1,以Hard模式。
4.4 Keep
Keep模式:在選擇的回退點之后的所有已提交的更改會被丟棄。但本地修改的會被完整地保存下來。
在版本2基礎(chǔ)上新增文字,形成未提交的版本3.
選擇了Keep模式進(jìn)行回退到版本1的效果如下:
說明:上圖出現(xiàn)了Git Reset Problem對話框是因為Keep模式會保留工作區(qū)修改的內(nèi)容,所以在回退到指定的提交點后,Idea接下來要處理就是這些在工作區(qū)修改的內(nèi)容,所以詢問用戶是否有必要保留這些內(nèi)容。如果沒必要保留,就完全可以Hard reset;如果有必要,通常情況下下一步就會需要解決沖突問題。
Hard Reset效果如 4.3 所示,點擊Smart Reset后效果如下:
沒錯,這里的stash 和 unstash 都是自動完成的。
說明:用戶也可以自己手動 stash 和 unstash操作,類似壓棧和彈棧操作。這一機制在“暫時不想提交現(xiàn)已修改的,但現(xiàn)在必須馬上在未修改之前的版本上著手開發(fā)另一套事情”的尷尬場景下,可以幫助我們有一個解決方法。這一概念像CPU被中斷后如何保存中斷現(xiàn)場,在處理完其他任務(wù)后,能夠恢復(fù)當(dāng)時現(xiàn)場。這里也是:當(dāng)前開發(fā)版本被中斷后如何保存當(dāng)前未提交內(nèi)容,在開發(fā)完成其他事情后,再恢復(fù)到這些內(nèi)容。
5. 總結(jié)
Soft:在選定提交點之后所做的所有更改都將被暫存(這意味著可以到 Version Control 窗口(Alt+9)的Local Changes 選項卡,以便您可以查看它們,并在必要時稍后提交)。
Mixed:在所選提交之后所做的更改將被保留,但不會暫存以進(jìn)行提交。
Hard:在所選提交之后所做的所有更改都將被丟棄(已暫存的和已提交的)。
Keep:在選定的提交之后所做的提交更改將被丟棄,但本地更改將保持不變。
如果需要使用IDEA 進(jìn)行版本回退可以訪問 IDEA git分支回退指定的歷史版本
到此這篇關(guān)于詳解IDEA Git Reset 選項說明的文章就介紹到這了,更多相關(guān)IDEA Git Reset 選項內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項目的過程2. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp3. php測試程序運行速度和頁面執(zhí)行速度的代碼4. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究5. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析6. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁7. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析8. ASP中常用的22個FSO文件操作函數(shù)整理9. SharePoint Server 2019新特性介紹10. 三個不常見的 HTML5 實用新特性簡介
