IDEA切換git分支時(shí)如何使用git stash
切換分支彈出提示:Force Checkout / Smart checkout
打開幫助文檔原文如下:

翻譯大意如下:
在idea上做分支切換時(shí)會(huì)發(fā)生什么,取決于你的本地尚未commit的修改和將要checkout的分支是否有沖突
如果idea設(shè)置開啟了"Restore workspace on branch switching"選項(xiàng)(Settings-Version Control-Confirmation),idea會(huì)保存你當(dāng)前的context,當(dāng)你切換到一個(gè)不同的分支(比如A),idea自動(dòng)恢復(fù)這個(gè)分支(A)的context
如果你的working tree是clean的(就是說(shuō)沒(méi)有uncommited changes),或者你的本地修改與將要切換到的分支沒(méi)有沖突,分支將會(huì)正常checkout(底下會(huì)有個(gè)提示)
如果你的本地修改將會(huì)被checkout的分支覆蓋,idea將會(huì)阻止你的切換操作,并列出將會(huì)被覆蓋的文件列表,建議你選擇Force checkout 和 Smart Checkout
如果選擇force checkout ,你本地的未提交的修改將會(huì)被覆蓋,你將丟失這些修改
如果選擇Smart Checkout,idea將會(huì)stash 未提交的修改,checkout到新分支,然后再執(zhí)行unstash 修改,如果此時(shí)unstash的時(shí)候發(fā)生沖突,將會(huì)提示你合并沖突

git stash適用場(chǎng)景
現(xiàn)在正在A分支下開發(fā),這個(gè)時(shí)候在分支B上有一處bug要修改,需要從A切換到B,切換前需要將A分支修改的代碼提交,但此時(shí)A里面有未通過(guò)編譯的代碼
此時(shí)可以考慮用git stash將A分支上修改的代碼進(jìn)行暫存
git stash 命令的作用就是將目前已經(jīng)修改但是還不想commit的內(nèi)容暫存下來(lái),后續(xù)可以恢復(fù)繼續(xù)開發(fā);作用的范圍包括工作區(qū)和暫存區(qū)中的內(nèi)容
例如線上突然出現(xiàn) bug,需要先切換到 master 分支,但當(dāng)前分支的代碼做了修改又不想馬上commit,直接切換分支,會(huì)將當(dāng)前分支的新增的代碼也添加到 master 分支,就可以使用 git stash
git stash 如何使用
寫下備注,因?yàn)榭赡苡卸嗵巗tash,方便后面unstash的時(shí)候區(qū)分,點(diǎn)擊Create Stash
切回分支之后再unstash還原回來(lái):
選擇之前暫存的記錄,勾選 Pop stash(還原完成后,會(huì)自動(dòng)刪除這個(gè) stash,不勾選不會(huì)刪除這個(gè) stash)
點(diǎn)擊 Pop Stash ,工作區(qū)之前的代碼修改恢復(fù)回來(lái)

浙公網(wǎng)安備 33010602011771號(hào)