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 ,工作区之前的代码修改恢复回来

posted @ 2022-12-30 15:40  鼠标的博客  阅读(1533)  评论(1编辑  收藏  举报