4

我对 git 修订还是很陌生,也许只是失去了很多工作(但我希望有办法回去,这就是我在这里问的原因)。

我在 OsX 上使用 SourceTree 进行 git 修订。我很久没有提交了,现在只想提交大量的更改。我选择在提交后立即推送。当推送花了很长时间时,我检查了我的文件夹,发现我不小心选择了一个不应签入的大构建文件夹。所以我取消了推送(我收到一条消息,比如提交成功,但推送没有)。

所以,即使我中断了推送,我仍然在我的主分支中看到了这个提交。我想撤消这个,所以我可以再次提交(这次没有构建文件夹)。我右键单击提交,然后单击了一个“反向提交...”选项。但它没有删除这个修订,而是添加了另一个标记为“Revert “我想要撤消的提交的名称”的修订。

坏事是 - 现在我所有的本地更改似乎都消失了,我的文件处于一个月前的状态。

由于提交(我取消了推送)仍在列表中,我想知道我是否可以以某种方式回到那里?有没有机会恢复我上个月所做的本地更改?我确实有我的文件的备份,但这也差不多两周了。

这是 sourcetree 当前的样子:

SourceTree 截图

如您所见,我之前成功提交/推送是在 5 月 20 日。然后今天我尝试提交/推送新功能,但在推送过程中中断。然后我“反转”了这个(中断的)提交,它显然将我所有的本地文件重置为 5 月 20 日的状态。Sourcetree 显示有 2 次推送(我假设是中断推送和“反向”推送犯罪)。

有什么办法可以让我回到今天提交之前的当地状态吗?

太感谢了

4

1 回答 1

8

首先撤消还原提交,丢弃它创建的更改:

git reset --hard HEAD^

然后撤消更新的渲染图形提交,但将这些更改保留在您的工作树(您的本地文件)中:

git reset HEAD^
于 2013-06-12T17:45:50.560 回答