我们在进行代码的开发过程中,不可避免的会遇到以下情况:
1、修改完代码,还没有git add,此时不想要修改的代码了
2、修改的代码已经git add提交到暂存区,还没git commit到本地分支
3、修改的代码已经git add sgit commit 到本地分支,还没有push到远程分支
4、发到线上,发现了影响流程bug,需要回滚到前一个版本
以上四种情况是我们开发中经常遇到的问题,针对问题,个个解决:
第一种情况:未进行git add
git checkout xxx:针对某个文件
git checkout . :针对所有修改的文件
第二种情况:已经git add 但还没有git commit到本地分支
a、代码回到git add之前,修改的代码保留
git reset HEAD . :针对所有文件
git reset HEAD xxx :针对某个文件
b、不想保留以前代码
a的命令走完后,在进行git checkout ./git checkout xxx的命令
第三种情况:已经git add git commit提交到本地分支,还没有push到远程分支
通过git log 可以看到提交的commit id
找到你想回到的版本的commit id
git reset --hard xxx // xxx为commit id
或者 git reset --hard HEAD^ :最近的一次提交
第四种情况:线上的回滚
哈哈,由于没用过,不敢写,可以自己搜下其他人的,不到万不得已,慎用。。。