如何重置变基壁球?

How to reset rebase squash?

如何重置 git 壁球?

我正在使用 PhpStorm。我压缩了过去 14 天工作的提交。提交 "HEAD DEV Refactor gulp file" 内部有 50 多个压缩的提交。

如何再次显示/取消压缩它们?

通常Git中没有"unsquashing"。我不熟悉你的工具,所以我的回答适用于 Git 命令行。如果您使用的是 Windows,您可能已经安装了 Git bash,并且该工具可能具有启动 Git 命令行的直接方式。

备份您的状态以防止遇到更严重的麻烦:

git tag unsquash-backup

首先检查 ORIG_HEAD 是否设置为您喜欢的值。这应该是你在变基之前的最后一个状态。

git show ORIG_HEAD

如果你看到这是你想回到的状态,就做

git reset --hard ORIG_HEAD
git rebase --abort

如果 ORIG_HEAD 不再是你想要的,你应该使用 git reflog,如果你做了一些事情,这是在 Git 中摆脱困境的常用方法你不应该。

git reflog

然后在列表中查找旧提交(看起来像 HEAD@{8})。那应该是你想回到的状态。首先检查提交的历史以确保

git log HEAD@{8}

然后您可以将分支重置为该状态。

git reset --hard HEAD@{8}

当然,用您在 git reflog 中找到的提交替换 HEAD@{8}

注意: 标准警告适用,如果您使用 git reset --hard,您将丢失所有当前未提交的更改。