我在(不分支)分支做了一個提交,然後做了一個拉,意識到我在錯誤的分支上做了一個'結帳主'和另一個拉。我現在無法找到我原來的提交推入主分支,我不能切換到(不分支)。有沒有辦法來恢復我的提交或得到差異?恢復(沒有分支)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 –