我在(不分支)分支做了一个提交,然后做了一个拉,意识到我在错误的分支上做了一个'结帐主'和另一个拉。我现在无法找到我原来的提交推入主分支,我不能切换到(不分支)。有没有办法来恢复我的提交或得到差异?恢复(没有分支)git提交
回答
git reflog
会列出您所做的所有提交,并且(例如)git merge [email protected]{1}
会将其合并回您的分支。
$ git reflog
734713b... [email protected]{0}: commit: fixed refs handling, added gc auto, updated
d921970... [email protected]{1}: merge phedders/rdocs: Merge made by recursive.
1c002dd... [email protected]{2}: commit: added some blame and merge stuff
<refname>@{<n>}, e.g. [email protected]{1}
的Ref后跟后缀
@
与封闭在一对括号(例如{1}
,{15}
)的序规范指定了第n个先前值REF。
请注意,git rebase -i
也会这样做。
的Revision Selection页提到:
重要的是要注意的是,
reflog
信息是严格的地方是很重要的 - 这是一个日志你已经在你的仓库做了什么。
引用在其他人的版本库中不会相同;并且在您最初克隆存储库后,您将拥有一个空的reflog,因为您的存储库中尚未发生任何活动。
配置gc.reflogExpire
指定何时删除比此时更早的reflog条目; 默认为90天。
这通常是正确的,虽然可能会因git reflog配置而失败。 –
@AlexBrown添加了一条警告。 –
它保留了大量日志 - 我认为120天是默认值。 –
- 1. 恢复没有分支的提交
- 2. 恢复git提交
- 3. 没有提交的Git结帐分支
- 4. 混帐SVN:恢复从没有掌握提交分支
- 5. 如何恢复对Git中未命名分支的提交?
- 6. 无法将git远程分支恢复到早期提交
- 7. 恢复到最后一次提交的git的分支
- 8. Git恢复本地提交
- 9. GIT:恢复上次提交?
- 10. Git:恢复旧的提交
- 11. Git:在检出新分支之前没有提交分支
- 12. 有没有更好的方法来恢复git-svn分支?
- 13. 从git仓库恢复文件没有提交
- 14. Git分歧的分支 - 恢复变化
- 15. Git合并分支提交
- 16. Git + Gerrit跨分支提交?
- 17. Git远程分支提交
- 18. 的Git分支VS提交
- 19. 的Git分支没有表现出如提前起源提交
- 20. Git重置并删除分支没有正常恢复
- 21. git分支(没有分支)
- 22. 如何恢复从git提交更改?
- 23. Git - 恢复丢失的提交
- 24. Git + Intellij - 如何恢复本地提交?
- 25. 恢复丢失远程git提交
- 26. 如何在git中恢复提交?
- 27. 从多个git rebases恢复“旧提交”
- 28. 如何恢复本地提交git
- 29. 恢复git中的一系列提交
- 30. git恢复到某个提交
也许 - 是否'git reflog'显示提交 - 你可能会把它拉到一个真正的分支? –
@AdrianCornish这很可能是正确答案:请在下面张贴它的投票。 –
@AlexBrown Done –