一、git常规撤销命令
- 工作区修改:git checkout +文件名 或者git checkout . 撤销所有更改
- 撤销已add文件:git reset (HEAD) +文件名
- git修改已提交备注:git commit --amend -m “you new message”
二、git撤销最近的几次commit(已经push,不保存最新代码)
--hard 意思就是将本地的工作区和暂存区代码也回退
- git reset --hard +commit的版本号 意思就是回退到哪个commit版本
- git push -f
三、git撤销最近的几次commit(已经push,保存最新代码)
--soft意思是保存本地最近的代码不会更新工作区和暂存区的最新代码,只是移动HEAD指针到某个commit
- git reset --soft +commit的版本号 意思就是回退到哪个commit版本
- git commit –m “message” 提交最新代码
- git push -f
四、git撤销文件commit到工作区(未push)
- git reset +commit的版本号 意思就是回退到哪个commit版本
- 或者git reset HEAD~
五、git删除中间某次commit(已经push)
- git stash 保存工作区内容
- git rebase –i 想要删除的commit前一个commit版本号
- 编辑弹出来的文件,将出错那笔提交的pick改为drop
- wq退出
- git push --force 强制推送到远程分支分支可能受保护,到gitup关闭保护即可)
- git stash pop
或者
- git revert想要删除的commit版本号
- 修改commit信息说明为什么要删除 wq保存
- git push
- 此操作会在最新指针上新加一个commit,记录删除的过程
六、git修改某次commit(已经push)
- git stash
- git rebase –i 想要修改的commit前一个commit版本号
- 将想要修改的commit的pick改成edit
- wq退出
- 到pycharm修改你想要修改的内容
- git add
- git commit --amend (不需要修改注释时,直接wq)
- git rebase --continue 移动 EAD 回最新的 commit
- git push –f
- git stash pop