改完bug准备下班,突然发现提交的代码本地编译不过。为了不被骂,马上就将提交的东西abandon掉。
具体情况:
已经push至远程服务器,但是代码暂时没有通过审核,实际上并不算真正的push上去了。
本地的commit记录还在,需要将本地commit的记录撤销掉,同时还原文件内容。
解决方案:
使用git reset 命令,后面的参数可以选择:
| 参数 | 意义 |
| --soft | 不删除工作空间的改动代码 ,撤销commit,不撤销git add file |
| --hard | 删除工作空间的改动代码,撤销commit且撤销add |
完整命令:
git reset --hard HEAD~1
HEAD~1表示撤销最后一次commit,同理HEAD~2表示撤销最后两次commit。
其他情况:
之前还遇见一次已经成功push的代码,但是后面测试又跑出问题了,挺严重的,一个模块出问题导致整个项目都停滞,多亏组长立即帮忙搞定,我也不知道咋弄的。一顿操作猛如虎,没看懂。事后百度一波,拿自己的仓库做个实验,似乎和上面一样。
此外还遇到一些commit记录信息不规范的情况,是不必撤销的,commit信息可以直接修改。、
以及利用rebase打造线性提交历史等等。
本文讲述了在开发中遇到的代码提交错误及如何处理。当代码未通过审核或者引发严重问题时,如何使用gitreset命令撤销本地commit。详细介绍了--soft和--hard参数的区别,并提供了一个实例,演示如何撤销最后一次commit。此外,还提及了修正commit信息和利用rebase整理提交历史的方法。
6866





