git切换到别的分支,把修改也带过去了

git切换到别的分支,把修改也带过去了

问题

  • 开发中建立了一个 dev 分支,修改了一些东西,然后想切换到 master,发现把 dev 上修改的内容也给带过去了。

解决

  1. 切换分支前先 git commit 一下

原因

  • 因为每一次的修改如果没有 commit,他都属于在工作区,而工作区是全局的,那么在 dev 下修改的内容没有 commit,也就不属于 dev,这时候切换回 mastergit status 一下, git 就会发现把当前工作区和 master 进行对比,发现有文件修改了。
  • 新建/修改的文件没有被纳入当前分支 dev 的版本管理,所以会被带到切换的分支

引申的问题

  • 那么如果当前的修改还未完成,不想 commit ,但又着急切换到别的分支呢?
    那就 git stash 一下(当前分支或者别的分支上都可以进行),把当前的修改保存一***意这里是保存而不是 add 到暂存区,等回到开发分支就可以 git stash pop 出来

拓展

  • 重点 ,工作区和暂存区是公共的。
    git切换到别的分支,把修改也带过去了

  • 工作区、暂存区、版本库之间的对比

命令 作用
git diff 工作区 vs 暂存区
git diff head 工作区 vs 版本库
git diff --cached 暂存区 vs 版本库