Git - 如何反转“git reset --hard origin/master”

Cra*_*der 2 git github

把我的头发拉到这里,因为我似乎无法解决这个问题。

我知道这是已被询问和回答的其他问题的重复,但是我不确定我是否在这里遗漏了什么。

我试图向我的 repo 推送提交,有一个大文件,它出现了一个关于它超过 100mb 的错误。所以我删除了该文件并尝试再次提交,但是它似乎仍然在提交的更改中包含该文件,因此它再次失败。

然后我认为运行 git reset --hard origin/master 会清除提交,但它会清除已进行的更改。我已经失去了一个月的工作,我真的感觉不太好。

在其他问题上,它建议使用 git reset HEAD@{1} 来恢复之前的重置。我这样做了,但是当重置完成时,我的文件没有回来,我做了 git status 并且它显示为

    deleted:    view/portal/reports/frequent-calls.view.php
    deleted:    view/portal/reports/not-contacts.view.php
    modified:   view/portal/reports/reports.view.php
    modified:   view/portal/reports/results.view.php
Run Code Online (Sandbox Code Playgroud)

标记为已删除的文件是我想要取回的文件。我不确定在此之后我是否应该做其他事情来取回文件。我真的很感激这里的任何建议!

bla*_*ser 5

你将你的 repo 指向 origin/master。要回来,你必须做同样的事情。

您的脚本不起作用,因为您也必须添加该--hard选项。

git reset --hard HEAD@{1}
Run Code Online (Sandbox Code Playgroud)

然而。如果您自第一次重置以来一直在做更多的事情。现在可能行不通了。

您应该使用 reflog 命令找到您的最后一次提交。

git reflog
Run Code Online (Sandbox Code Playgroud)

您将看到 HEAD 的最新位置。寻找有问题的重置的前一个。您可以使用 SHA1 或列表中的位置。

git reset --hard SHA1
Run Code Online (Sandbox Code Playgroud)

或者

git reset --hard HEAD@{theNumber}
Run Code Online (Sandbox Code Playgroud)