为啥 git reset --hard 不把我的本地文件改回原来的状态? [复制]

Posted

技术标签:

【中文标题】为啥 git reset --hard 不把我的本地文件改回原来的状态? [复制]【英文标题】:Why doesn't git reset --hard change my local files back to their original state? [duplicate]为什么 git reset --hard 不把我的本地文件改回原来的状态? [复制] 【发布时间】:2012-07-03 07:42:19 【问题描述】:

我搞砸了,实际上将一个 git 存储库推送到我的另一个存储库的 url。我正在尝试撤消此操作,但遇到了问题,而且我之前没有使用过“git reset”。

假设最后一次良好提交的哈希值是 12345。我尝试执行 git reset --hard 12345,这似乎成功且没有错误,但由于某种原因,它并没有更改我的本地文件。我的本地工作目录仍然包含所有意外推送的文件。我该如何恢复它们?

【问题讨论】:

让我明白,你想恢复推送?你在推送的仓库还是你推送到的仓库? git status 是否显示某些文件已被修改? (是什么让你认为 Git 没有恢复文件?) 只有 push 会影响另一个 repo。这是您的问题吗,在一个回购中进行重置不会影响另一个?如果是这样,无论您在哪个 repo 中进行了重置,都在另一个 repo 中执行相同的操作。 【参考方案1】:

这些是未跟踪的文件吗?您可以通过以下方式删除它们:

git clean -f -d

【讨论】:

不,所有文件都是意外推送到仓库的。而且我想要的文件都没有恢复。

以上是关于为啥 git reset --hard 不把我的本地文件改回原来的状态? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

用SVN代替“git reset --hard”

git reset --hard 错误:无法解析对象

git reset --soft,--hard的区别

git reset HEAD 与 git reset --hard HEAD的区别

git reset --hard和git revert命令

sh git hard reset staging