解决: Git切换分支时把当前分支内容的更改带到切换后的分支
原因
当前分支内容的更改还在工作区或者暂存区(工作区和暂存区的内容更改在所有分支可见),也就是说当前分支的内容更改没有commit(提交),分为两种情况:
- 还在工作区,也就是说没有进行add操作
- 在暂存区,只进行了add操作而没有进行commit操作
解决办法
我设定当前分支名称为a
,要切换的分支名称为b
,解决办法有以下三种:
不操作
只切换分支,然后又切换回切换前的分支,也就是说只进行切换分支的操作,可以不用管a分支内容的更改
1 | #切换到b分支 |
切换前提交
切换分支前先把当前分支的内容提交上去,这样切换后的分支就看不到a分支内容的更改了
1 | #添加到暂存区 |
储存内容的变更
储存当前分支内容的变更,也就是说把当前分支的内容更改储存起来,先使用add命令将内容的更改添加到暂存区
1 | git add . |
再使用stash命令储存
1 | git stash |
然后切换到b分支,此时是看不到a分支内容的更改的
1 | git branch b |
切换回a分支
1 | git branch a |
恢复储存的内容变更,pop
表示恢复最近一次储存的内容变更并删除储存记录,如果是apply
则只恢复不删除储存记录
1 | git stash pop |
到此已经完成了,下面的是储存记录的删除命令
删除储存记录使用git stash drop
命令,直接执行则删除最近一条,加上记录的索引stash@{1}
则删除指定的记录(第1条,从0开始计算,先使用git stash list
查看所有储存记录)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeDao's Blog!
评论