git reflog显示我的提交与我的分支无关。如何获取与已签出的分支相关的提交?

时间:2019-06-11 07:14:47

标签: git

我无意间犯了一些工作并将其合并到另一个分支中。要解决此问题,我需要返回到较早的提交。

但是,当我运行git reflog时,会得到与正在处理的另一个分支有关的提交列表。它们都与我目前正在工作的分支机构无关,并且已经签出。

会有人知道这是为什么吗,以及我如何找到与分支有关的提交?

2 个答案:

答案 0 :(得分:2)

如果您仍然有分支机构,请使用:git reflog [yourbanch]

如果您查找otherbranch的历史记录:git reflog [otherbranch]


git refloggit reflog HEAD的快捷方式,它为您提供了所有已检出提交的详细历史记录;一般而言,这很有用(它使撤消堆栈更完善),但确实更加嘈杂。

答案 1 :(得分:1)

执行简单的git reflog时使用的格式是

git reflog [show] [log-options] [<ref>]

所以您实际上省略了两个参数,这些参数将被假定并返回其默认值:

git reflog show HEAD

本身具有HEAD的历史记录,因此(如果您要做具有多个分支工作流)混合了不同分支的操作​​列表。

但是您可能已经指定了一个分支(即使该分支碰巧已经被检出,因为HEAD不会在此处解析为当前分支):

git reflog some-feature

(这里也暗示了show动作,但是分支是显式的)


来自doc

  

“ show”子命令(在没有任何子命令的情况下也是默认值)显示了命令行中提供的引用日志(默认为HEAD)。