场景重现
在解释git commit后回退的操作前,先重现一下场景:
一个项目,你接手的时候,从git仓库下载到本地。当前仓库的commitId是AAA。你在本地编辑后,觉得OK了,要提交上去,你提交的commitId是BBB。BBB与AAA区别就是包含了你辛苦开发的代码。
OK。现在问题就是。当你提交BBB以后,发现有些文件提交错了,需要撤回。怎么办呢?
git如何撤销上一次commit操作
1.第一种情况:还没有push,只是在本地commit
(成功案例
1. git log (获取commitId)
2. git reset --soft commitId 即可
)
git reset --soft|--mixed|--hard <commit_id>
git push develop develop --force (本地分支和远程分支都是 develop)
这里的<commit_id>就是每次commit的SHA-1,可以在log里查看到
--mixed 会保留源码,只是将git commit和index 信息回退到了某个版本.
--soft 保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.