git - 如何在变基之前检索旧提交
问题描述
说,我正在一个名为“最新”的分支上工作。完成任务后,我提交工作。当我将“master”分支的更改重新设置为“latest”分支时,在解决冲突期间,我不小心接受了 master & 的所有更改,结果,到最后,当重新设置完成时,我失去了很多我的工作是在“最新”中完成的。
考虑到我在“最新”分支中重新定位,我所做工作的提交是否被我接受的冲突解决方案覆盖?我之前的(原始)提交是否已经消失了?如果没有,我该如何找回它们。谢谢。
解决方案
您在latest
分支中所做的原始提交应该仍然可以在 git reflog 中访问。当前latest
分支虽然现在有新的、重写的提交。您可以尝试筛选 reflog,但最快的方法可能是硬重置latest
到远程跟踪分支origin/latest
:
# from latest
git reset --hard origin/latest
此选项假定,在您进行有问题的提交后,您推送到远程,从而更新(本地)跟踪分支origin/latest
。如果是这样,跟踪分支应该仍然看起来与变基之前相同。
如果您在提交后没有推送本地分支,那么 reflog 可能仍然可以帮助您。键入git reflog
。然后,在拙劣的变基之前找到作为分支 HEAD 的提交。您可以使用提交消息来帮助您。获得该提交的 SHA-1 后,再次进行硬重置:
# from latest
git reset --hard <SHA-1 of your old HEAD>
推荐阅读
- uwp - UWP BitmapImage.Source - 网络 Uri 工作,但本地磁盘 Uri 不工作
- r - 闪亮:当 eventReactive 函数将另一个 eventReactive 函数的输出作为输入时,ignoreNULL 不起作用?
- java - 分类器和下游和只使用分类器有什么区别
- python - 与重复索引合并 - 行数大于预期
- c++ - 如何组织与两个对象有关的变量
- stata - 查找连续几个月的最长连续
- r - 根据每组不同值的数量进行过滤
- reactjs - material-UI:如何增加滚动条大小
- javascript - Getter 方法不需要下划线来引用。为什么?
- excel - 如何根据来自另一个单元格的值引用 Excel 中的一系列单元格