IDEA当在一个分支上修改了内容没有提交,然后切换到其他分支时,可能会发生冲突。
这时IDEA会弹出提示,问你要选择Smart Checkout还是Force Checkout.
如果想保留你在原分支上的修改内容,那么选择Smart Checkout,
Force Checkout不会保留你的修改,切到另一个分支内容就消失了,且切回来原来分支也找不回,白写了。
don`t checkout 当然是不切分支,继续留在当前分支了
Smart Checkout 原理:
选择Smart Checkout,IDEA会先执行stash命令,贮存这些未提交的修改,然后checkout 到分支B,在切换到分支B后,unstash 这些修改,所以A分支本地的这些修改会带到B分支上。
Force Checkout后的解决办法:
如果发生切到另一个分支,修改内容就消失的问题,可以依赖idea的local hsitory 功能将修改代码找回。(即idea会保存本地文件的修改历史,不依赖于git),示例如下:
1、找到修改过的文件,右键 -- Local Hsitory -- Show Hsitory
2、根据文件的历史记录,找到丢失的代码,将其合到本地代码中(合并逻辑与idea中git合并代码类似)。