git切换到别的分支,把修改也带过去了
问题
- 开发中建立了一个
dev
分支,修改了一些东西,然后想切换到master
,发现把dev
上修改的内容也给带过去了。
解决
- 切换分支前先
git commit
一下
原因
- 因为每一次的修改如果没有
commit
,他都属于在工作区,而工作区是全局的,那么在dev
下修改的内容没有commit
,也就不属于dev
,这时候切换回master
,git status
一下,git
就会发现把当前工作区和master
进行对比,发现有文件修改了。 - 新建/修改的文件没有被纳入当前分支
dev
的版本管理,所以会被带到切换的分支
引申的问题
- 那么如果当前的修改还未完成,不想
commit
,但又着急切换到别的分支呢?
那就git stash
一下(当前分支或者别的分支上都可以进行),把当前的修改保存一***意这里是保存而不是add
到暂存区,等回到开发分支就可以git stash pop
出来
拓展
-
重点 ,工作区和暂存区是公共的。
-
工作区、暂存区、版本库之间的对比
命令 | 作用 |
---|---|
git diff | 工作区 vs 暂存区 |
git diff head | 工作区 vs 版本库 |
git diff --cached | 暂存区 vs 版本库 |