idea切換Git分支時(shí)保存未提交的文件方式
問題描述
現(xiàn)在需要開發(fā)一個(gè)新功能A時(shí),我們需要從Dev分支上創(chuàng)建一個(gè)新的功能分支tenant,然后我們就在這個(gè)分支上進(jìn)行開發(fā)。
假設(shè)有一天,你正在開發(fā),本地已經(jīng)在tenant上修改了幾個(gè)文件,但是功能還沒有完全開發(fā)完成,你不想commit,此時(shí)測(cè)試跟你說在現(xiàn)在的一個(gè)測(cè)試分支master上有1個(gè)Bug,希望你去修復(fù)。
這個(gè)時(shí)候你有兩種選擇:
- 提交tanant上的文件,然后切換到master修復(fù)Bug。(你不想這么干)
- 不提交tenant上的文件,直接切換到master修復(fù)Bug,這樣會(huì)把tenant里面修改的文件帶到master里面去。(你也不想這么干,因?yàn)閠enant的新功能不應(yīng)該跟master扯上任何關(guān)系)
解決方案
我們現(xiàn)在有三個(gè)分支,如下圖:

我們目前在tenant分支上進(jìn)行開發(fā),需要去修復(fù)master的Bug,假設(shè)我們?cè)趖enant分支上修改了一個(gè)文件,如下圖:

方法一:使用Shelve Changes
1、選中tenant上你不想提交的文件,右鍵選擇Shelve Changes

2、保存Shelve Changes

3、查看Shelve Changes

4、切換到master分支,修復(fù)Bug。
切換到另一個(gè)分支之后,你會(huì)發(fā)現(xiàn)你在tenant中的修改并沒有帶到這個(gè)里面來(lái),你可以放心在這個(gè)上修改。

5、修復(fù)完成之后,切換回tenant,選擇Shelve Changes進(jìn)行UnShelve


6.tenant的修改恢復(fù)之后,刪除Shelve Changes
方法二:使用Stash Changes
1、選中tenant上你不想提交的文件,右鍵選擇Git->Repositor->Stash Changes

2、保存Stash Changes

3、查看Stash Changes


4、切換到master分支,修復(fù)Bug。切換到這個(gè)之后,你會(huì)發(fā)現(xiàn)你在tenant中的修改并沒有帶到新的分支里面來(lái),你可以放心修改。
5、修復(fù)完成之后,切換回tenant,選擇Git->Repositor->UnStash Changes

6、tenant的修改恢復(fù)之后,刪除Stash Changes

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java controller接口出入?yún)r(shí)間序列化轉(zhuǎn)換操作方法(兩種)
這篇文章主要介紹了Java controller接口出入?yún)r(shí)間序列化轉(zhuǎn)換操作方法,本文給大家列舉兩種簡(jiǎn)單方法,感興趣的朋友一起看看吧2025-04-04
SpringBoot+Mybatis+Vue 實(shí)現(xiàn)商品模塊的crud操作
這篇文章主要介紹了SpringBoot+Mybatis+Vue 實(shí)現(xiàn)商品模塊的crud操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
SpringBoot項(xiàng)目中公共字段填充的實(shí)現(xiàn)
本文主要介紹了SpringBoot項(xiàng)目中公共字段填充的實(shí)現(xiàn),利用SpringBoot的Aop思想和自定義注解和反射機(jī)制的方法來(lái)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
深入學(xué)習(xí)JAVA GC日志的相關(guān)知識(shí)
JVM 在Java應(yīng)用程序優(yōu)化中是不可缺少的一大重項(xiàng),如何合理配置Java參數(shù),如何驗(yàn)證配置參數(shù)的有效性,從GC日志中可以獲得很重要的提示。下面小編就帶大家來(lái)一起學(xué)習(xí)一下吧2019-06-06
SpringBoot實(shí)現(xiàn)接口數(shù)據(jù)加解密的三種實(shí)戰(zhàn)方案
在金融支付、用戶隱私信息傳輸?shù)葓?chǎng)景中,接口數(shù)據(jù)若以明文傳輸,極易被中間人攻擊竊取,Spring Boot 提供了多種優(yōu)雅的加解密實(shí)現(xiàn)方案,本文將從原理到實(shí)戰(zhàn),帶你掌握三種主流實(shí)現(xiàn)方式,需要的朋友可以參考下2025-05-05
springmvc整合freemarker配置的詳細(xì)步驟
本篇文章主要介紹了springmvc整合freemarker的詳細(xì)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05
Java中日期時(shí)間比較的多種方法及實(shí)用代碼
本文介紹了Java中不同日期時(shí)間類的比較方法,包括java.util.Date、java.util.Calendar、java.time?API和java.sql.Timestamp,提供了使用before、after和compareTo等方法進(jìn)行日期比較的示例代碼,展示了各自的特點(diǎn)和使用場(chǎng)景,需要的朋友可以參考下2024-09-09

