回答
我认为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