目录

正在拼命的写代码,突然线上出现了一个bug,需要立刻解决,但是目前的工作空间代码改动挺大的,怎么解决?

方法1:在当前主分支修改bug

暂存当前的改动的代码,目的是让工作空间和远程代码一致:

git stash

修改完bug后提交修改:

git add .

git commit -m "fix bug 1"

git push

从暂存区把之前的修改恢复,这样就和之前改动一样了

git stash pop

这时可能会出现冲突,因为你之前修改的文件,可能和bug是同一个文件,如果有冲突会提示:

Auto-merging xxx.java

CONFLICT (content): Merge conflict in xxx.java

前往xxx.java解决冲突。

注意stash pop意思是从暂存区恢复到工作空间,同时删除此条暂存记录。

方法2:拉一个新分支

老司机都推荐这样做,充分利用了git特性,先暂存一下工作空间改动:

git stash

新建一个分支,并且换到这个新分支

git branch fix_bug //新建分支

git checkout fix_bug //切换分支

这时候就可以安心的在这个fix_bug分支改bug了,改完之后:

git add .
git commit -m "fix a bug"

切换到master主分支:

git checkout master

从fix_bug合并到master分支:

git merge fix_bug

提交代码:

git push

然后从暂存区恢复代码:

git stash pop

此时如有冲突,需要解决冲突

哈哈,工作空间又恢复到了原状,继续开发。