Git各阶段的回退操作
- 工作区的代码改动不想要了(git add之前)
使用 git checkout – 进行回退。
2.git add以后放入暂存区的代码修改不想要了
使用git reset HEAD [filename]进行回退,如果不加[filename],则回退所有缓存区中的代码文件。
3.git commit提交到本地仓库的代码不想要了
使用git reset --hard commit-id进行回退。看上面的git log,每一次commit提交日志都生成一个commit id,如果修改刚提交的修改想回退,那么通过上面的commit id就可以(commit id不需要写全,前几位能区分不同的commit id就可以)
实际上,上面的git reset --hard commit_id是把本地仓库分支版本上的HEAD指针进行了移动,实际上
没有删除任何内容,如果上面的代码回退你后悔了,可以用git reset --hard继续返回到之前的版本上,
但是之前版本的commit id在哪里看呢?可以用git reflog命令,如下:
- 远程仓库的代码修改不想要了,有两种方法:
a、git pull,在本地分支最新的代码版本上删除之前修改的,然后重新push到远程代码仓库上。
b、在本地分支上通过git reset --hard xxx回退到之前的版本,然后通过git push -f推送覆盖远程代码仓库。确保没有人家提交代码,否则就把别人的代码提交了。