Idea中切换分支时进行文件的临时存储

一、git中没有提交到本地仓库的改变内容会带到别的分支

        git 切换分支时会把未add或未commit的内容带过去,这样可能造成代码覆盖的问题,这个在工作中会经常遇到!

二、对本地仓库的文件进行了修改,但没有提交到本地仓库,切换分支时会造成代码覆盖

        master分支和dev01分支都存在a.txt这个文件,在master分支修改了a.txt后,并没有提交到本地仓库,这个就会造成代码覆盖的问题。 

此时切换到dev01分支就会提示会造成代码覆盖

点击smart checkout解决代码覆盖

如果不保留左边master分支的内容,从dev01分支再切回master分支,会发现master分支没有提交到本地仓库的内容全部没有了。具体保留左边还是右边的内容按实际情况。

三、git stash和git unstash的使用

         git stash会将提交到暂存区和对本地仓库已有文件进行了修改但是没有提交的内容进行临时存储。不能对未添加到暂存区的内容进行临时存储。

下图是使用git unstash展示可以临时存储的内容

git stash不能指定哪些文件进行临时存储,只能git进行自动识别。 

四、 Shelve Changes和Unshelve

Shelve Changes和Unshelve可以指定哪些文件进行临时存储。

 4.1、对文件进行临时存储

         git 切换分支时会把未add或未commit的内容带过去,所以切换分支之前要进行文件的临时存储。具体的操作见下图

 

 

 

4.2、文件进行临时存储后,改动的内容就在当前分支不存在了 

        对比临时存储前和临时存储后的文件:

        临时存储前改动和新增的文件

   

        临时存储后新增和修改后的文件就不存在了

 

4.3、 Unshelve操作释放临时存储的文件

        git在切换回当前分支时可以通过 Unshelve操作,恢复当前的分支新增和修改的内容。

使用 Unshelve操作后,当前分支的新增和修改的内容就恢复了。

 

4.4、总结:

1、 在当前分支master切换到dev01分支时,新增和修改的内容容易造成代码覆盖,所以在切换到dev01分支前,使用Shelve Changes新增修改的内容进行临时存储。

2、在dev01分支处理完之后,可以直接切换回master分支,在master分支进行Unshelve操作可以释放临时存储的文件。

3、Shelve Changes只能对新增和修改的内容进行临时存储,不能对未提交到暂存区的内容进行临时存储

4、Shelve Change可以对指定的文件夹进行临时存储

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值