Git篇—创建A分支进行代码修改,切换回master分支发现把A分支修改的内容带到了master分支中

4,472 阅读1分钟

一、问题描述

  • 场景1:项目一期的工作完成并投入市场形成master主分支封板,二期开发会新建一个本地sit分支进行开发。这时市场上的版本出现了bug,要切回一期的master主分支进行修改代码,发现sit分支中新增和修改的代码出现在了master分支中。

  • 场景2:小明拥有两个本地分支A和B,两个分支中都有LoginActivity.class文件,小明在A分支中修改了LoginActivity.class文件的内容,git checkout B后发现在分支A中修改的内容出现在分支B中。

二、分析原因

1、什么场景下会出现

小明原本只有A分支,后来git checkout -b B生成了一个B分支;

小明的A和B分支都从远程分支master下拉了一次版本,现在本地两个分支的版本完全一样;

2、原因是什么

我想现在大家已经知道关键问题在哪里了吧,就是两个分支的版本完全一样,原来git checkout切换分支的时候,会对比当前分支的md5值,当两个分支的md5值一样的时候,git check就会带着你的修改的内容去另外一个分支。

三、解决方案

两种方式二选一

  • 1、可以使用git stash把工作区空间的修改隐藏起来,就可以切换到其他分支了,然后使用git stash list查看stash,再用git stash pop stash@{0}应用并删除该stash@{0}。
  • 2、将新分支的代码修改之后,使用git commit提交到本地仓库。