撤消 git reset --hard origin/master [重复]

Posted

技术标签:

【中文标题】撤消 git reset --hard origin/master [重复]【英文标题】:Undo a git reset --hard origin/master [duplicate] 【发布时间】:2015-01-10 22:54:04 【问题描述】:

在本地主分支上工作:

git commit -m "Lots of important commits"
git reset --hard origin/master

如何(从远程)检索由于 git reset 而丢失的提交?

编辑:注意这不是关于检索未提交的更改。

【问题讨论】:

您无法从远程存储库中提取该代码,您只能将其提交到本地存储库,然后将其重置为远程存储库。该代码从未被推送到遥控器。我尝试总是在硬重置之前创建一个像“temp”这样的分支,这样我就有一些引用这些提交的东西,以防我意识到我需要它们。 You're pretty much screwed 不是那个的副本,因为这个例子试图恢复提交,而不是未提交的更改。 @Turch 抱歉,这是领先的,我的意思是由于我从远程存储库中错误地拉出,如何检索提交 【参考方案1】:

如果你犯了,什么都不会丢失。

如果你有提交的参考,你可以 git reset --hard <sha> 到那个精确的提交。

如果您不这样做,您始终可以在执行硬重置之前使用 git reflog 检索 sha。

例如,如果git reset --hard origin/master 是您运行的最后一个命令,您可以这样做

git reset HEAD@1

【讨论】:

HEROOOOOOOOOOOO! 奇怪的是,这一半起作用了,因为它带回了我已提交并丢失的文件,但没有带回包含该文件的目录(因此我不得不手动重新创建目录)。

以上是关于撤消 git reset --hard origin/master [重复]的主要内容,如果未能解决你的问题,请参考以下文章

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

Git add后跟git reset删除了我的所有文件[重复]

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

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

git reset --hard和git revert命令

sh git hard reset staging