Git 硬重置不恢复本地文件

标签 git git-reset

我有一个功能分支,我们称它为功能/JIRA-1000。 在这个分支上,我提交了一条消息,我们可以称之为“It works”。

在此之后,我对代码进行了重大重构,并将更改提交为“重构”。 然而,后来我意识到,我应该将更改作为另一个任务 (JIRA 2000) 的一部分,在一个单独的分支上进行。所以从 JIRA,我创建了一个新的分支 feature/JIRA-2000,基于 feature/JIRA-1000。因此,该新分支包含“它有效”和“重构”提交。

然后我想从 feature/JIRA-1000 分支中删除“重构”提交。所以在 Gitkraken 中,我右键单击“It works”提交并选择“Reset -> hard”。 我也从 Git Bash 中尝试过:

$ git checkout feature/JIRA-1000
Already on 'feature/JIRA-1000'
Your branch is up to date with 'origin/feature/JIRA-1000'.

$ git reset --hard f9ef772b188ae359a77804b63a79aa542fd44e6b
HEAD is now at f9ef772 SERDOC-1000 It works

$ git push -f
Everything up-to-date

但现在问题来了:我的本地文件没有改变。

我做错了什么?

Gitkraken 可能搞砸了一些事情,因为我相信当我第一次运行命令时我有一些未暂存的更改,我可以看到一个提交条目,上面写着:

Merge remote-tracking branch 'origin/feature/JIRA-1000' into feature/JIRA-1000

在我的分支历史记录的顶部。但无论如何,JIRA-2000 现在应该是这个样子。我无法将 JIRA-1000 恢复到我想要的状态。

编辑: 我只是不小心在 JIRA-2000 分支(我不想重置的新分支)上重复了硬重置。在这种情况下,硬重置确实重置了我的本地更改。 (值得庆幸的是,我能够通过再次硬重置为“重构”提交来撤消此操作)。 那么也许我的 JIRA-1000 分支以某种方式损坏了?

最佳答案

您实际上做对了所有事情。

您确定您的 IDE 使用了正确的存储库吗?也许您出于某种原因在两个不同的文件夹中拥有相同的存储库,而您的 IDE 正在使用您没有执行这些命令的存储库。

您是否也可以从终端检查代码的变化以确保它是否真的没有变化?

关于Git 硬重置不恢复本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56443141/

相关文章:

git - 我如何在工作树中找到 `git reset`?

git - 将 git 存储库从 GitLab 转移到 GitHub - 我们可以、如何和陷阱(如果有)?

Git merge 方向错误

Git 添加文件夹并推送

git - 无法解析 docker 中的主机

git rm --cached 文件 vs git 重置文件

git - 如何丢弃 Git 中的本地提交?

git - 如何在 GitHub 上的 PR 中附加测试报告

git - 撤消 git reset --hard origin/master

git - 如何将 Git 存储库重置为其新克隆的状态?