重置后,恢复已提交但未推送的分支
After reset, recover branch that was committed but not pushed
我从已推送的提交(称为提交 A)开始了一个新分支,然后继续进行更改并在没有推送的情况下向这个新分支(称为 B、C 和 D)提交了大约三次。然后我发现了一个我无法立即看到其来源的错误,我决定我想返回提交 A 以查看该错误当时是否存在。
我正在使用 TortoiseGit,所以我找到了提交 A 并右键单击它。我现在知道暂时使用项目的正确命令应该是 "Switch/Checkout",但我错误地选择了 "Reset [branch name] to this"。
谢天谢地,我做了混合重置而不是硬重置,这意味着我仍然在我的工作目录中的提交 B、C 和 D 中实现了更改。意识到自己的错误后,为了安全起见,我承诺并推动了这些。
在 TortoiseGit 日志中,提交 A、B 和 C 不再可见。这不是世界末日,因为我取得的进步已经浓缩到我在重置后所做的一次提交中。但是,我仍然想恢复这些提交,因为它们比大提交更具增量性并且具有描述性消息。可能吗?
我是 git 的新手,到目前为止只使用过 TortoiseGit 界面。我更喜欢使用它的解决方案,但如有必要将使用命令行。非常感谢。
说到命令,git reflog 将允许您找到丢失的提交的 SHA,然后您可以执行类似 git branch <name of the ressurected branch> <SHA of the last commit lost>
的操作
是否使用 'Reflog'。要在 TortoiseGit 中执行此操作,请在目录中按住 shift 键并单击鼠标右键(您必须按住 shift 键才能获得扩展菜单)。转到 TortoiseGit -> Show Reflog 将显示所有以前的提交。从那里我可以切换到我丢失的分支。
感谢那些告诉我有关 reflog 的人。
您的情况:
显示 RefLog
通过
使 D 可见
- 显示日志+创建分支
- 直接创建分支
- Switch/Checkout
- (创建标签...)
日志
我从已推送的提交(称为提交 A)开始了一个新分支,然后继续进行更改并在没有推送的情况下向这个新分支(称为 B、C 和 D)提交了大约三次。然后我发现了一个我无法立即看到其来源的错误,我决定我想返回提交 A 以查看该错误当时是否存在。
我正在使用 TortoiseGit,所以我找到了提交 A 并右键单击它。我现在知道暂时使用项目的正确命令应该是 "Switch/Checkout",但我错误地选择了 "Reset [branch name] to this"。
谢天谢地,我做了混合重置而不是硬重置,这意味着我仍然在我的工作目录中的提交 B、C 和 D 中实现了更改。意识到自己的错误后,为了安全起见,我承诺并推动了这些。
在 TortoiseGit 日志中,提交 A、B 和 C 不再可见。这不是世界末日,因为我取得的进步已经浓缩到我在重置后所做的一次提交中。但是,我仍然想恢复这些提交,因为它们比大提交更具增量性并且具有描述性消息。可能吗?
我是 git 的新手,到目前为止只使用过 TortoiseGit 界面。我更喜欢使用它的解决方案,但如有必要将使用命令行。非常感谢。
说到命令,git reflog 将允许您找到丢失的提交的 SHA,然后您可以执行类似 git branch <name of the ressurected branch> <SHA of the last commit lost>
是否使用 'Reflog'。要在 TortoiseGit 中执行此操作,请在目录中按住 shift 键并单击鼠标右键(您必须按住 shift 键才能获得扩展菜单)。转到 TortoiseGit -> Show Reflog 将显示所有以前的提交。从那里我可以切换到我丢失的分支。
感谢那些告诉我有关 reflog 的人。
您的情况:
显示 RefLog
通过
使 D 可见- 显示日志+创建分支
- 直接创建分支
- Switch/Checkout
- (创建标签...)
日志