如何撤消重置(Git / TortoiseGit)?

Posted

技术标签:

【中文标题】如何撤消重置(Git / TortoiseGit)?【英文标题】:How to undo a reset (Git / TortoiseGit)? 【发布时间】:2022-01-06 06:46:23 【问题描述】:

我目前(唯一一个)正在处理一个本地存储库,该存储库被远程推送到我的 GitHub 帐户。今天我找不到关于我昨天晚上写的新代码的任何信息,所以我想知道可能出了什么问题,或者我是否不小心犯了一些错误。

现在我正在检查我的 Reflog(使用 Tortoise Git)。 正如您从我的Reflog Screenshot 中看到的那样,发生了重置,这可以解释为什么我“丢失”了代码。我的问题是:是否可以撤消此重置以获取所有文件,就像它们在重置前的那一刻一样?如果不可能,因为一切都是最近的,有没有其他方法可以达到相同的结果?

非常感谢您的帮助!

【问题讨论】:

在您发出重置之前文件是否已提交,或者它们是否仍在您的工作文件夹中未提交的更改? 不是在重置之前,这是我需要恢复的点。 git 中是否为最近的更改缓存了一些内容? 【参考方案1】:

撤消重置很大程度上取决于重置的类型和工作树状态。

当您执行硬重置并且您的工作树中有未提交的更改时,这些未提交的更改将丢失(除非您之前已备份它们)。

当您没有未提交的更改时,您可以轻松打开 RefLog 对话框,选择重置前的最后一个提交/条目并打开上下文菜单。在这里,您可以创建一个新分支,然后指向重置前存储库(索引)的状态。现在,当您在日志对话框中打开此分支时,您可以将其重新定位到您的旧分支或樱桃选择提交或您想做的事情。

【讨论】:

如何知道是否硬重置?是否可以从我提出的问题中的 Reflog 截图中理解? RefLog 看不到这一点。 您可以使用 TortoiseGit 日志文件看到它:%LOCALAPPDATA%\TortoiseGit\logfile.txt

以上是关于如何撤消重置(Git / TortoiseGit)?的主要内容,如果未能解决你的问题,请参考以下文章

Git重置(撤消、丢弃)文件变更

Git Book 中文版 - Git的撤消操作 - 重置, 签出 和 撤消

如何撤消 git pull?

使用tortoisegit工具git地址中带号码密码的拉取,以及使用这种方式后中途重置密码报git remote: HTTP Basic: Access denied 错误解决办法

tortoiseGit 重置为以前的版本

在 ACE 编辑器中重置撤消堆栈