Git rebase后提交历史被抹掉了,怎么恢复?
今天在合并分支时用了git rebase main,解决冲突后提交了,结果发现之前的提交历史全没了,只剩最后那次合并的记录。我明明记得要保留分支历史才用的rebase,现在该怎么把中间的几个提交找回来?
尝试过git reflog看到有之前的commit记录,比如:
82d3a1f (HEAD, feature/login) Merge branch 'main' into feature/login
9f8c7d2 Save credentials logic
a1b2c3d Add login form
但不知道该用哪个哈希值恢复中间步骤,直接checkout会创建新分支吗?
页面上有个登录表单突然样式错乱了,可能是冲突解决时删了CSS:
<form>
<input type="text" placeholder="Username">
<!-- 密码输入框好像被删了? -->
<button>Login</button>
</form>
这下代码和提交历史都乱了,该怎么补救?
git reflog找到你要恢复的提交哈希,比如a1b2c3d,然后执行git reset --hard a1b2c3d恢复到那个状态。如果想保留当前改动,先git stash一下再恢复。样式错乱的话,对比下git diff a1b2c3d看看哪块CSS丢了,我之前就这样搞的。