git提交时 commit错误或回滚失败等多种情况解决方案
一、拉取代码git pull时冲突同时修改失误并commit提交至缓存中,怎么恢复?
-
1、首先查看所有的commit提交日志,并获取提交唯一id
-
命令:
git logcommit 09920462c56027fxxxxxxxxxxxxxxxxx (HEAD -> danxiao-revision, origin/danxiao-revision) Author: xxxxxx Date: xxxx 第一次提交 commit xxxxxx Merge: xxxx Author: xxxx Date: xxxxx 第二次提交以上是模拟了两次提交,可以看到,
git log查询了所有的commit日志,每条日志都有一个唯一的id。
-
-
2、此时复制第一次提交的commit唯一id,调用
git reset回滚日志-
git reset --hard 09920462c56027fxxxxxxxxxxxxxxxxx(id)
注意:
git reset命令只是从缓存commit记录中回滚到本地,不会影响到线上代码。
-
二、回滚失误,通过以上环境回滚了错误的commit日志唯一id,或出现git log命令找不到提交记录
-
1、首先
git log查询commit记录,如果能找到相应日志,执行以上步骤即可 -
2、
git reflog查询回滚记录日志。-
git reflog
xxxx HEAD@{1}: xxxx 123xxxx(id) HEAD@{2}: commit: 回滚这个记录可以获取到之前
git reset回滚的所有记录,并每条记录中也都会有一个唯一`id
-
-
2、此时只需要执行
git reset -- hard命令重置回滚命令- git reset --hard 123xxxx(id)
三、git 日志中啥都找不到通过工具解决
-
使用工具中的
history的快照功能,回滚到相应的代码- IntelliJ IDEA一般自带
当然 像
Android Studio类似工具都具有这个功能- vscode:
local history
- 默认这个插件会把所有快照文件放在
.history中,如果影响到git提交记得.gitignore排除 - 当然这个插件需要在你安装前操作才有效果,所以只是一个预防效果,以防以后出现这种事情,不要问我为什么这么清楚,问就是你们懂的!
四、最后绝招
重写