回答
我認爲this article是你在找什麼根據這篇文章,你的承諾是「水漲船高」,而不是垃圾回收 - 有點像在Windows回收站
您運行git fsck --lost-found
。找到'dlingling commit',並用git reflog
來查看它,然後將懸掛提交與當前分支git merge 7c61179
合併。
謝謝。那樣做了。我知道它只是在某處浮動,與分支無關。 – 2010-02-27 17:45:47
結合difftool,我已經解決了我的「丟失的提交」問題: git fsck --lost-found(顯示懸掛提交哈希) git difftool SOME_HASH somefolder /(我試過所有懸掛的提交,直到我已經找到了需要的) – 2013-05-22 13:47:00
2天如果你知道該提交ID(如向後滾動你的終端上,或者使用git reflog
),
git reset --hard 61567de5d9
凡61567de5d9是最新的第一個數字(丟失)提交。
git使得它很容易回到之前的狀態,並且非常努力地防止你丟失任何你已經犯下的數據。這就是你應該經常做的原因。我有一個命令git trash
那是否git reset --hard
狀態,但在寫一個提交後,如果我需要,我可以撤消硬重置。
對於最近的狀態(即您的確切情況),只需執行git reset --hard ORIG_HEAD
即可撤銷您剛纔的操作。
你可以做一個基於時間的復位:git reset --hard '@{5 minutes ago}'
把自己放在基於時間在先狀態(有很多的選擇,你可以使用,例如,git reset --hard '@{yesterday}'
假裝今天從未發生過)。
否則,瀏覽git reflog
輸出找到在你感覺你把你置於壞的狀態之前的事情並且重新設定。
更一般的,你可以使用'@ {1}'或'HEAD @ {1}'而不是'ORIG_HEAD'。 – 2010-02-28 14:55:14
- 1. 爲什麼git在合併後失去了日誌提交?
- 2. git diff最後提交加上所有未提交的更改?
- 3. 的EditText失去了它的邊界失敗後提交
- 4. 後退git提交
- 5. 提交後Git拉
- 6. 過去提交的git狀態?
- 7. git p4提交失敗
- 8. Git合併提交丟失
- 9. 提交後失效
- 10. git:哪個遠程git分支有最後一次提交?
- 11. 本地提交後Git拉
- 12. git工作流後提交
- 13. 如何在不丟失Git中的最後一個提交的情況下將HEAD重置爲某個提交?
- 14. 恢復提交缺失後的git的復位 - 硬HEAD〜1
- 15. git push:推送除最後一個提交以外的所有提交
- 16. Git - 恢復丟失的提交
- 17. git提交的代碼行消失
- 18. 如何返回上一次提交而不會丟失Git中的最後提交?
- 19. 失去GET變量提交或刷新
- 20. 提交svn unstages最後一次提交?
- 21. 還原git的重置頭最後一次提交的變化
- 22. 恢復到最後一次提交的git的分支
- 23. knockout.js選擇元件結合失去後續形式提交值
- 24. 查詢字符串值網頁提交後失去
- 25. 中止舊的git rebase並失去了自rebase開始以來的提交
- 26. git rebase保持最近的提交
- 27. Git:提交新文件後,我不能提交,因爲»分支最新«-message
- 28. Git找出我推送的最後一個提交
- 29. 如何找到git倉庫的最後幾個提交
- 30. git,如何引用當前分支中的最後提交
在任何情況下,請勿使用git gc。這將永久刪除未鏈接的提交。 – Tronic 2010-02-27 17:41:12
不,gc會*不會*失去那個提交,除非你讓自己的方式更容易讓git忘記你的提交(禁用或積極修剪)。任何花費足夠的時間學習如何配置git失去最近的提交的人至少會知道不會問這個問題。 – Dustin 2010-02-27 19:27:30
默認情況下'git gc'不會在未引用提交的情況下(默認情況下)拒絕未提交鏈接的提交,時間長達30天。 – 2010-02-28 14:56:31