场景:
git checkout master 之后,发现有一个 issue53 需要解决,于是又新建了一个分之 iss53, 解决 iss53 的过程中,突然有一个更紧急的bug需要修复,但是 iss53 已经进行到一半,如果有文件改动有冲突的话我们是无法 checkout 回 master 的,而我不想现在就提交 iss53 所做的修改,我希望去修复那个更紧急的 bug 之后再来接着处理 iss53
解决:
-
在 iss53 分之下执行命令:
git stash
简单理解的话,就是把所做的改动隐藏起来,这样我们就可以 checkout 回 master 分支了 -
checkout 回 master 分支
git checkout master
-
新建一个 hotfix 分支用来解决这个紧急bug
git checkout -b hotfix
然后改这改那,改完之后提交... -
再 checkout 回 master 分支,合并 hotfix 分支
git checkout master
git merge hotfix
-
可选,删除 hotfix 分支,因为 master 分支已经与 hotfix 分支一致
git branch -d hotfix
-
checkout 回 iss53 分支,接着解决这个问题,但是第一步我们已经将之前的改动隐藏起来了,这里就需要把那些改动还原(将之前修改的部分重新应用),然后接着进行
还原:git stash apply
默认应用最近的一次 stash
git stash list # 所有的 stash
git stash apply stash-name # 指定应用的stash
就这样。
关于 git stash
网友评论