idea切换Git分支时保存未提交的文件

问题描述

现在需要开发一个新功能A时,我们需要从Dev分支上创建一个新的功能分支tenant,然后我们就在这个分支上进行开发。假设有一天,你正在开发,本地已经在tenant上修改了几个文件,但是功能还没有完全开发完成,你不想commit,此时测试跟你说在现在的一个测试分支master上有1个Bug,希望你去修复。这个时候你有两种选择:

  • 提交tanant上的文件,然后切换到master修复Bug。(你不想这么干)
  • 不提交tenant上的文件,直接切换到master修复Bug,这样会把tenant里面修改的文件带到master里面去。(你也不想这么干,因为tenant的新功能不应该跟master扯上任何关系)

解决方案

我们现在有三个分支,如下图:
idea切换Git分支时保存未提交的文件_第1张图片
我们目前在tenant分支上进行开发,需要去修复master的Bug,假设我们在tenant分支上修改了一个文件,如下图:
idea切换Git分支时保存未提交的文件_第2张图片

方法一:使用Shelve Changes

1、选中tenant上你不想提交的文件,右键选择Shelve Changes
idea切换Git分支时保存未提交的文件_第3张图片

2、保存Shelve Changes
idea切换Git分支时保存未提交的文件_第4张图片

3、查看Shelve Changes
idea切换Git分支时保存未提交的文件_第5张图片

4、切换到master分支,修复Bug。切换到另一个分支之后,你会发现你在tenant中的修改并没有带到这个里面来,你可以放心在这个上修改。
idea切换Git分支时保存未提交的文件_第6张图片

5、修复完成之后,切换回tenant,选择Shelve Changes进行UnShelve
idea切换Git分支时保存未提交的文件_第7张图片
idea切换Git分支时保存未提交的文件_第8张图片

6.tenant的修改恢复之后,删除Shelve Changes

方法二:使用Stash Changes

1、选中tenant上你不想提交的文件,右键选择Git->Repositor->Stash Changes
idea切换Git分支时保存未提交的文件_第9张图片

2、保存Stash Changes
idea切换Git分支时保存未提交的文件_第10张图片

3、查看Stash Changes
idea切换Git分支时保存未提交的文件_第11张图片
idea切换Git分支时保存未提交的文件_第12张图片

4、切换到master分支,修复Bug。切换到这个之后,你会发现你在tenant中的修改并没有带到新的分支里面来,你可以放心修改。

5、修复完成之后,切换回tenant,选择Git->Repositor->UnStash Changes
idea切换Git分支时保存未提交的文件_第13张图片

6、tenant的修改恢复之后,删除Stash Changes
idea切换Git分支时保存未提交的文件_第14张图片

你可能感兴趣的:(git)