我在(不分支)分支做了一个提交,然后做了一个拉,意识到我在错误的分支上做了一个'结帐主'和另一个拉。我现在无法找到我原来的提交推入主分支,我不能切换到(不分支)。有没有办法来恢复我的提交或得到差异?恢复(没有分支)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. 恢复分支独有的提交
- 3. 恢复git提交
- 4. 恢复分支git
- 5. 没有提交的git分支
- 6. 没有提交的Git结帐分支
- 7. 混帐SVN:恢复从没有掌握提交分支
- 8. 无法将git远程分支恢复到早期提交
- 9. 如何恢复对Git中未命名分支的提交?
- 10. 恢复到最后一次提交的git的分支
- 11. Git恢复本地提交
- 12. Git:恢复旧的提交
- 13. GIT:恢复上次提交?
- 14. git恢复已提交的提交
- 15. 恢复到git分支
- 16. Git:在检出新分支之前没有提交分支
- 17. Git - 分支提交历史重复
- 18. 有没有更好的方法来恢复git-svn分支?
- 19. 从git仓库恢复文件没有提交
- 20. Git分歧的分支 - 恢复变化
- 21. git分支撤消提交
- 22. Git远程分支提交
- 23. Git - 提交出主分支
- 24. 的Git分支VS提交
- 25. Git + Gerrit跨分支提交?
- 26. Git合并分支提交
- 27. 的Git分支没有表现出如提前起源提交
- 28. Git重置并删除分支没有正常恢复
- 29. git分支(没有分支)
- 30. Git压扁所有提交分支没有冲突
也许 - 是否'git reflog'显示提交 - 你可能会把它拉到一个真正的分支? –
@AdrianCornish这很可能是正确答案:请在下面张贴它的投票。 –
@AlexBrown Done –