-2
A
回答
0
恢復:使用git reflog
查找SHA1,然後使用git checkout <sha>
。
要追查:使用git log
看到所有commmit日誌 - http://git-scm.com/docs/git-log
1
在this question about how to do this for one branch的git fsck
方法可能還不夠在這裏,因爲有多個分支刪除可能存在一些問題,這些承諾去與分支機構。但是,如果事實證明回答,很容易,它可能會是最快的做這種方式:
git fsck --no-reflogs \
| awk '$2 == "commit" {print $3}' \
| xargs git show -s
如果藏匿產品不保持足夠的日誌,那麼如果它實際使用git或者是一些實現git reflogs的東西,你至少可以使用它們來恢復已刪除的refs。
git刪除顯式刪除分支的reflog,包括推送顯式刪除;那些現在已經從你受損的回購和誰明確推動刪除的回購。
但從您的回購做平原提取的遙控器不解釋爲刪除其分支的請求跟蹤您的refs - 沒有明確的刪除請求的提取不是一個明確的請求刪除任何超過沒有明確的刪除請求是。爲此,必須明確詢問提取(使用--prune
)以不再在遠程中修剪分支。
所以沒有做任何明確的清理的回購肯定仍然有遺漏的遠程追蹤分支,您可以查看其日誌中最近的事務。最簡單的自動化方法是
git for-each-ref refs/remotes/$remote --format='git reflog -1 %(refname)' \
# | sh -x
該輸出中沒有reflog的分支自初始提取以來未更改過。
現在你可以回到你的損傷回購,如果有任何問題,其他回購記住一個分支提交的是最近的,做
git log --graph --decorate --oneline $each $candidate $commit
,以幫助你找到它。
git branch $branch $therightcommit
恢復它。
也許有人會知道一個簡單的方法與藏匿(或混帳爲此事)要做到這一點,如果沒有,這可能是值得一試。
相關問題
- 1. 如何從GIT repo中刪除我的本地分支機構
- 2. Git-跟蹤遠程分支機構
- 3. Git - 如何刪除分支?
- 4. 我如何讓讓Git來警告我可能刪除遠程分支機構
- 5. 如何刪除已經集成的所有遠程git分支?
- 6. 如何用TortoiseGit刪除Git分支
- 7. git pull當前追蹤分支
- 8. 刪除Git分支
- 9. 如何重置我的本地分支追蹤遠程分支
- 10. GIT - 使用所有分支機構的最新版本文件
- 11. 如何刪除Netbeans中的git分支?
- 12. 如何刪除遠程git分支「正常」,又名a.a.更新所有用戶的遠程分支列表?
- 13. 如何真正刪除一個git分支(即刪除所有對象/提交)?
- 14. 刪除遠程git存儲庫的所有遠程跟蹤分支
- 15. 如何在沒有本地跟蹤分支的情況下刪除遠程分支機構?
- 16. 有一個遠程的Git分支卻敵不過當地的分支機構,如何刪除遠程一個
- 17. GIT從我的FORK中刪除分支
- 18. 我可以刪除舊的git分支
- 19. Git:如何列出有關跟蹤遠程信息的分支機構?
- 20. 刪除git中的分支
- 21. 使用Git顯示所有第一級後代分支機構
- 22. 跟蹤所有本地分支機構與遠程的聯繫
- 23. 遠程Git修剪不會刪除遠程分支機構
- 24. 用-rD刪除git分支而不刪除遠程svn分支
- 25. 如何刪除git zombie分支?
- 26. git:如何刪除本地ref分支?
- 27. 如何刪除git遠程分支
- 28. 如何在git中刪除分支
- 29. Git/SourceTree:如何刪除分支?
- 30. 如何從git分支刪除文件