【Git】分支切换时内容未提交

本文通过实例探讨了在Git中,未提交的修改在分支切换时如何处理。如果在分支上修改的内容未提交,切换分支时这些修改会带到新的分支。使用`git stash`可以临时隐藏修改,避免内容随分支切换。在需要时,通过`git stash apply`可以恢复隐藏的修改。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

按照对git分支的理解,但我在分支1修改内容,然后切换到分支2,分支1上修改的内容,分支2中应该是看不见的。但实践表明,只有当分支1修改的内容已提交,该结论才会成立,对于在分支上未提交的内容,切换分支时,会被带到新的分支

这里做个小示例验证:

在这里插入图片描述

先初始化仓库,同时提交一个初始文件,文件内容:[0] start

在这里插入图片描述

直接创建新的分支branch-1,并切到新的分支,编辑文件,新增:[1] update in branch-1的内容。

此时切换回master分支,发现,我们在branch-1分支上修改的内容,并带到了master分支。

在这里插入图片描述

同时我们需要注意,如果此时我们在master分支,将修改的内容进行提交,再切换到branch-1分支上,会发现之前修改的内容没有存在于branch-1分支上。

小结:即我们在分支上修改的内容,如果没有提交的话,在切换分支时,是会被带新的分支,只有在当前分支进行提交后,才会将内容合并到当前分支,不会随着分支切换而被带走。

那如果我们在当前分支的修改还没达到提交的时候,但是又需要切换分支时该如何操作呢?

这里可以使用 git stash 来实现这个需求。

同样做个小示例:

在这里插入图片描述

在现在的master分支上, 拉取一个新的分支branch-2,在branch-2分支上编辑文件,新增:[2] update in branch-2,此时我们需要切回master分支,但是不希望这个修改被带到master分支,则我们使用 git stash 将在branch-2分支上修改的内容隐藏起来。再切回到master分支,发现刚才的修改没有被带过来。

在这里插入图片描述

当我们在master分支上处理完原有的任务后,我们就可以重新切到branch-2分支,此时,我们修改的内容还被隐藏着,可以通过 git stash pop,将隐藏的内容进行弹出。

在这里插入图片描述

同时注意,如果我们在本地的修改,与要切换的新分支冲突的话,git也会提示我们要先提交内容,或者隐藏修改的内容,不然无法切换到新的分支。

结论:对于未提交的内容,切换分支时,会被带到新的分支。可以通过 git stash 将修改内容隐藏,来避免该情况的出现。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值