原因
当前分支内容的更改还在工作区或者暂存区(工作区和暂存区的内容更改在所有分支可见),也就是说当前分支的内容更改没有commit(提交),分为两种情况:
- 还在工作区,也就是说没有进行add操作
- 在暂存区,只进行了add操作而没有进行commit操作
解决办法
我设定当前分支名称为a
,要切换的分支名称为b
,解决办法有以下三种:
不操作
只切换分支,然后又切换回切换前的分支,也就是说只进行切换分支的操作,可以不用管a分支内容的更改
#切换到b分支
git branch b
#切换回a分支
git branch a
切换前提交
切换分支前先把当前分支的内容提交上去,这样切换后的分支就看不到a分支内容的更改了
#添加到暂存区
git add .
#提交到本地仓库
git commit -m "提交信息"
#切换到b分支
git branch b
储存内容的变更
储存当前分支内容的变更,也就是说把当前分支的内容更改储存起来,先使用add命令将内容的更改添加到暂存区
git add .
再使用stash命令储存
git stash
然后切换到b分支,此时是看不到a分支内容的更改的
git branch b
切换回a分支
git branch a
恢复储存的内容变更,pop
表示恢复最近一次储存的内容变更并删除储存记录,如果是apply
则只恢复不删除储存记录
git stash pop
到此已经完成了,下面的是储存记录的删除命令
删除储存记录使用git stash drop
命令,直接执行则删除最近一条,加上记录的索引stash@{1}
则删除指定的记录(第1条,从0开始计算,先使用git stash list
查看所有储存记录)