IDEA切换git分支时如何使用git stash
切换分支弹出提示: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 ,工作区之前的代码修改恢复回来