切換分支彈出提示:Force Checkout / Smart checkout
打開幫助文檔原文如下:

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

git stash適用場景
現在正在A分支下開發,這個時候在分支B上有一處bug要修改,需要從A切換到B,切換前需要將A分支修改的代碼提交,但此時A里面有未通過編譯的代碼
此時可以考慮用git stash將A分支上修改的代碼進行暫存
git stash 命令的作用就是將目前已經修改但是還不想commit的內容暫存下來,后續可以恢復繼續開發;作用的范圍包括工作區和暫存區中的內容
例如線上突然出現 bug,需要先切換到 master 分支,但當前分支的代碼做了修改又不想馬上commit,直接切換分支,會將當前分支的新增的代碼也添加到 master 分支,就可以使用 git stash
git stash 如何使用


寫下備注,因為可能有多處stash,方便后面unstash的時候區分,點擊Create Stash
切回分支之后再unstash還原回來:


選擇之前暫存的記錄,勾選 Pop stash(還原完成后,會自動刪除這個 stash,不勾選不會刪除這個 stash)
點擊 Pop Stash ,工作區之前的代碼修改恢復回來
