背景
- 研发时,在dev分支修改代码,需要临时切换到V18.21分支,此时应该先commit dev分支的代码,在checkout
- V18.21分支修改完成后,切换回dev分支,此时需要撤销commit操作恢复到当前HEAD分支
- 执行git reset撤销操作时会有四种模式
解决方法
git bash中操作
git reset --soft HEAD~1 // 撤销commit代码改变,仍然保留git add
- HEAD~1 表示回到上一个版本
- 若push之前你有多次commit,即你进行了2次的commit 都想撤回 可以使用HEAD~2
idea中操作
用idea可以直接在Git任务栏选择Reset Current Branch to here…操作
git reset --soft 完全保留工作区和暂存区,会撤销git commit提交,保留git add操作的内容
(所有reset都会执行这个操作)
git reset --mixed 完全保留工作区,会撤销commit提交和git add操作
git reset --hard 彻底清除工作区和暂存区,***慎用***
git reset --keep 保留工作区和HEAD之间的差异
- 慎重采用git reset --hard 操作,此操作会删除当前HEAD所有git commit和gir add操作