git 切换分支时会把未add或未commit的内容带过去
git 切换分支时会把未add或未commit的内容带过去, 这一点值得注意。
为什么呢?
因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的。
要想在分支间切换, 又不想又上述影响, 怎么办呢? git stash搞起。要注意,在当前分支git stash的内容, 在其他分支也可以git stash pop出来,为什么? 因为:工作区和暂存区是公共的。
少说了一点,就是这两个分支是完全相同时,(即最后一次commit是完全相同)才可以在不add commit 新修改的情况下切换分支,但注意这个时候切换分支会把修改带到切换后的分支。例如你在b1分支修改文件,切换到b2,在b2上add commit,则这个commit是属于b2的,你commit之后在切换回b1,查看该文件,你会发现修改没了,切换回b2查看该文件,修改有了,再次证明最后在哪个分支commit,这个commit就属于那个分支的。 如果两个分支完全不同,例:b1上新建一个分支b2,这个时候两个分支还是相同的,如果b1哪怕提交了一个commit,这两个分支就会变得完全不同了,两个完全不同的分支,如果你在b1上有修改,是没办法switch到b2的,会报错:【error: Your local changes to the following files would be overwritten by checkout:。。。 】
分类:
IDEA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!