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

 更新时间:2026年04月30日 08:36:39   作者:华妃  
当在开发分支上修改了部分文件,但功能未完成且需要修复其他分支的bug时,可以使用ShelveChanges或StashChanges暂存未提交的修改,之后在其他分支上进行修复,修复完毕后,再恢复暂存的修改

问题描述

现在需要开发一个新功能A时,我们需要从Dev分支上创建一个新的功能分支tenant,然后我们就在这个分支上进行开发。

假设有一天,你正在开发,本地已经在tenant上修改了几个文件,但是功能还没有完全开发完成,你不想commit,此时测试跟你说在现在的一个测试分支master上有1个Bug,希望你去修复。

这个时候你有两种选择:

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

解决方案

我们现在有三个分支,如下图:

我们目前在tenant分支上进行开发,需要去修复master的Bug,假设我们在tenant分支上修改了一个文件,如下图:

方法一:使用Shelve Changes

1、选中tenant上你不想提交的文件,右键选择Shelve Changes

2、保存Shelve Changes

3、查看Shelve Changes

4、切换到master分支,修复Bug。

切换到另一个分支之后,你会发现你在tenant中的修改并没有带到这个里面来,你可以放心在这个上修改。

5、修复完成之后,切换回tenant,选择Shelve Changes进行UnShelve

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

方法二:使用Stash Changes

1、选中tenant上你不想提交的文件,右键选择Git->Repositor->Stash Changes

2、保存Stash Changes

3、查看Stash Changes

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

5、修复完成之后,切换回tenant,选择Git->Repositor->UnStash Changes

6、tenant的修改恢复之后,删除Stash Changes

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java controller接口出入参时间序列化转换操作方法(两种)

    Java controller接口出入参时间序列化转换操作方法(两种)

    这篇文章主要介绍了Java controller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看看吧
    2025-04-04
  • Java实现PDF添加水印的完整方案

    Java实现PDF添加水印的完整方案

    在企业级应用中,PDF水印是文档安全管理的必备功能,无论是版权保护、版本标识,还是敏感信息管控,水印都扮演着重要角色,本文将提供一个生产级的PDF水印解决方案,需要的朋友可以参考下
    2026-02-02
  • 详细盘点Java中锁的分类

    详细盘点Java中锁的分类

    这篇文章主要介绍了详细盘点Java中锁的分类,Java中的锁是一种多线程编程中的同步机制,用于控制线程对共享资源的访问,防止并发访问时的数据竞争和死锁问题,需要的朋友可以参考下
    2023-08-08
  • SpringBoot+Mybatis+Vue 实现商品模块的crud操作

    SpringBoot+Mybatis+Vue 实现商品模块的crud操作

    这篇文章主要介绍了SpringBoot+Mybatis+Vue 实现商品模块的crud操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • SpringBoot项目中公共字段填充的实现

    SpringBoot项目中公共字段填充的实现

    本文主要介绍了SpringBoot项目中公共字段填充的实现,利用SpringBoot的Aop思想和自定义注解和反射机制的方法来实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 深入学习JAVA GC日志的相关知识

    深入学习JAVA GC日志的相关知识

    JVM 在Java应用程序优化中是不可缺少的一大重项,如何合理配置Java参数,如何验证配置参数的有效性,从GC日志中可以获得很重要的提示。下面小编就带大家来一起学习一下吧
    2019-06-06
  • SpringBoot实现接口数据加解密的三种实战方案

    SpringBoot实现接口数据加解密的三种实战方案

    在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,Spring Boot 提供了多种优雅的加解密实现方案,本文将从原理到实战,带你掌握三种主流实现方式,需要的朋友可以参考下
    2025-05-05
  • springmvc整合freemarker配置的详细步骤

    springmvc整合freemarker配置的详细步骤

    本篇文章主要介绍了springmvc整合freemarker的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java中日期时间比较的多种方法及实用代码

    Java中日期时间比较的多种方法及实用代码

    本文介绍了Java中不同日期时间类的比较方法,包括java.util.Date、java.util.Calendar、java.time API和java.sql.Timestamp,提供了使用before、after和compareTo等方法进行日期比较的示例代码,展示了各自的特点和使用场景,需要的朋友可以参考下
    2024-09-09
  • Java中数组的一些常见操作和技巧分析

    Java中数组的一些常见操作和技巧分析

    这篇文章主要给大家介绍了关于Java中数组的一些常见操作和技巧分析的相关资料,数组(Array)是Java中的一种引用数据类型,是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理,需要的朋友可以参考下
    2023-08-08

最新评论