TwKit
正在载入
TwKit

rebase 搞砸了,提交看着没了?先别给代码办葬礼。 git reflog 查的是本地引用的移动记录,不是普通提交历史。默认看 HEAD,连切换分支也会留… · @BaiBtw · TwKit

@BaiBtw

rebase 搞砸了,提交看着没了?先别给代码办葬礼。 git reflog 查的是本地引用的移动记录,不是普通提交历史。默认看 HEAD,连切换分支也会留下记录;只查某个分支,用 git reflog 分支名。 比如切到功能分支、提交一次,再做交互式 rebase。reflog 按新到旧排列,可以从中找到 rebase 前的提交。假设那条记录是 b623930、标着 HEAD@{3},它们就是同一位置的两种写法。 确认要把当前分支、暂存区和工作区一起退回那个版本时,可以执行: git reset --hard b623930 但 --hard 不是无损撤销:它会覆盖工作区和暂存区,丢掉相应的未提交改动,也可能覆盖挡路的未跟踪文件。 还有两道边界:HEAD@{3} 是引用移动次数,不是往前数三个提交;reflog 也不是永久备份。默认过期阈值通常是 90 天,不可达条目通常是 30 天,配置可以改。它记录的是引用变化,没存进 Git 的文件内容,不会凭空替你变回来。

曝光 10 · 评论 0 · 点赞 0 · 书签 0

查看原帖