我在(无分支)分支上进行了提交,然后进行了拉动,意识到我在错误的分支上并进行了“结帐大师”和另一个拉动。我现在找不到要推送到主分支的原始提交,也无法切换到(无分支)。有没有办法恢复我的提交或获得差异?
问问题
208 次
1 回答
6
将为您列出您所做的git reflog
所有提交,并且(例如)git merge HEAD@{1}
将其合并回您的分支。
$ git reflog
734713b... HEAD@{0}: commit: fixed refs handling, added gc auto, updated
d921970... HEAD@{1}: merge phedders/rdocs: Merge made by recursive.
1c002dd... HEAD@{2}: commit: added some blame and merge stuff
<refname>@{<n>}, e.g. master@{1}
一个 ref 后跟
@
一个包含在大括号对(例如{1}
,{15}
)中的序号规范的后缀,指定该 ref 的第 n 个先前值。
请注意, agit rebase -i
也会这样做。
修订选择页面提到:
重要的是要注意这些
reflog
信息是严格本地的——它是您在存储库中所做的事情的日志。
其他人的存储库副本上的引用不会相同;在您最初克隆存储库后,您将有一个空的 reflog,因为您的存储库中还没有发生任何活动。
配置gc.reflogExpire
指定何时删除比此时间更早的 reflog 条目;默认为 90 天。
于 2012-09-05T04:20:15.767 回答