我们有一个提交修复了我们的代码库上通过拉取请求合并的问题。提交现在无处可寻。我不知道它是如何删除的,因为很久以前。好处是我可以在Stash上看到pull请求,提交哈希和更改差异。如果存储中仍存在所有这些信息,我该如何恢复提交?
答案 0 :(得分:3)
如果您知道提交哈希,只需调用git show
即可检查本地存储库中是否存在提交:
git show <commit-id>
如果提交仍然存在,您可以使用git branch
git branch save-my-old-commit <commit-id>
如果在本地存储库中提交不存在(这是可能的,当从任何引用无法访问时),您可以尝试直接从远程存储库获取它,然后查看新的分支:
git fetch origin <commit-id>
git branch save-my-old-commit FETCH_HEAD
如果原始提交源自pull请求,您也可以尝试从分叉存储库中提取(我没有使用Stash的经验,因此我假设它与GitHub或Gitlab类似)。
将提交恢复到本地分支后,您可以按照自己的意愿继续进行操作,例如在当前分支的顶部选择提交。
答案 1 :(得分:0)
你有几个选项(我只列出其中几个,还有更多选项):
git bisect
找出何时(提交)它已“消失”git reflog
可以准确查看已完成的操作以及何时(在该点之后未克隆存储库)我的建议是使用git bisect
查找它何时消失。