我无意间犯了一些工作并将其合并到另一个分支中。要解决此问题,我需要返回到较早的提交。
但是,当我运行git reflog
时,会得到与正在处理的另一个分支有关的提交列表。它们都与我目前正在工作的分支机构无关,并且已经签出。
会有人知道这是为什么吗,以及我如何找到与分支有关的提交?
答案 0 :(得分:2)
如果您仍然有分支机构,请使用:git reflog [yourbanch]
如果您查找otherbranch
的历史记录:git reflog [otherbranch]
git reflog
是git 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)。