如果将我的唯一分支重置为较早的提交然后强行推送,提交消息是否会丢失?

时间:2019-01-13 19:31:56

标签: git

如果我只有一个display:table分支,并且重置为上一个阶段,然后进行强制更新,那么在运行master之后,那些提交消息会丢失吗?

1 个答案:

答案 0 :(得分:1)

不是立即。默认情况下,Git会保留一个称为reflog的东西,它会跟踪每个参考(包括分支)90天的历史。在引用这些提交的引用日志条目到期之前,Git将继续保存它们引用的对象,包括包含提交消息的提交对象。只有在那之后git gc才会清理它们。

如果要在master分支上查找以前的提交,可以运行git reflog master在每个时间点查找该分支的状态。然后,您可以找到所需提交的提交哈希,使用git show验证它是否是您想要的提交,并在必要时使用git checkout -b从中创建一个新分支。

您还可以运行普通的git reflog来查看HEAD reflog,该日志显示了已检出内容的历史记录,而与分支无关。