3

如何重置 git squash?

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

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

在此处输入图像描述

4

1 回答 1

14

Git中通常没有“解压”。我不熟悉你的工具,所以我的回答适用于 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}

当然HEAD@{8}用你在git reflog.

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

于 2016-11-01T20:40:01.627 回答