家居小楠人≈

您现在的位置是:首页 > 慢生活 > 程序人生网站首页慢生活

Git 如何在不提交当前分支修改的内容的情况下切换到其它分支进行操作

家居小楠人≈ 2019-04-29 389人围观
简介 自己收集的文章,学习之用!!!

使用场景


假如现在手中的 Bug 还没有解决完,而上边又派了一个新的 Bug,而这个新 Bug 又比较急着解决,可是之前的 Bug 还没有解决完而不能提交。该怎么办?

解决方法


在其他分支上另开炉灶解决

首先,将正在解决的 Bug 的当前分支 stash (储存)起来
因为当前的分支 temp 最初也是从master 分支上衍生出来的。而此时你要再从该分支上切换到主分支。那么你需要先把 temp 分支上的改动提交后才能切换,但是 temp 分支上还没有完成全部的修改,你不想提交。此时你就要选择 stash 你在当前分支上改动的却没有提交commit的内容。



当前分支有修改(modified)


执行 $ git stash 命令,将当前分支修改的内容 stash 起来,stash id 为 4240c0c


执行 $ git status list 命令,查看 stash 列表,会看到已经刚才的修改已存储,即 stash@{0},id 为 4240c0c


执行 $ git status 命令,显示没有东西需要提交,这个时候你就可以切换到其他分支了



然后,切换到其他分支或者新建分支来修改新的 Bug执行 $ git branch bug001 命令,新建一个分支 bug001,用于解决新 Bug


执行 $ git branch 命令,查看一下,已经创建了新分支 bug001,但仍处于 temp 分支


执行 $ git checkout bug001 命令,切换新分支 bug001


执行 $ git branch 命令,查看一下,已经切换到了新分支 bug001



修复完紧急的 Bug 后,就可以切回之前的分支,进行未完成的内容执行 $ git checkout temp 命令,切回 temp 分支


执行 $ git stash list 命令,查看 stash 列表,找到之前存储的 id 为 4240c0c 的 stash 记录


执行 $ git stash apply stash@{0} 命令,恢复 id 为 4240c0c 的 stash 的内容


从上图可以看出,已经恢复之前修改但未完成的内容了
执行 $ git stash drop stash@{0} 命令,删除 stash 列表中已经恢复的 id 为 4240c0c 的 stash 记录


执行 $ git stash list 命令,查看 stash 列表,已将之前存储的 id 为 4240c0c 的 stash 记录删除



文章评论