检索git commit从不推送

时间:2014-06-30 15:56:59

标签: git github

我正在努力研究一些代码的大量重构,迫切需要解决当前代码库中的修复问题;我以为我在一个名为“重构”的分支中提交了一个提交。并切换回我的主分支重置并再次分支。这样做我从未将提交推送到远程,似乎我的重置吃了我做过的工作。我试图使用reflog找到无头提交,但我很难找到它。有没有办法我可以更有效地搜索git知道的所有文件(永远!)所以我可以找到这个工作?那里有很多文件当然是"已添加" git,永远不会在另一个分支或修订版。救命啊!〜! :)

通过注入帮助,我能够获得我需要检索的文件列表,但我有点不确定如何继续进行而不进一步纠正。

git fsck --lost-found

结果:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (776/776), done.
dangling blob 8f20a05f00d77c78d10a3918d6d34a2d2c097624
dangling blob 47a10c7617b7cc9f8ba176050c5a3b79c54f102d
dangling blob 57716763518cc82585d614fa0a8ee591c8de1153
dangling blob b90129cb7ffe06fe23356e8fe7a1ad3b0e24d984
dangling blob d621cb1156dfdf79163d0072d03cfe5d05254b01
dangling commit 1bc2732eac1a8052dff64de96c7ecf38f11dc9c5
dangling blob 30e2b939f96737af80ac0326b5c5cd39a8de9ce7
dangling blob 4a2a3732e06511a26acd08a663fbfb671fdf0439
dangling blob 57f2ff859a88c069442961baf86b78312b80ab13
dangling blob 72ca95ac4e98e2d30677fe8d611ddcd30225d255
dangling blob 9022ffd961b57d713d20a93dc4cb51f1b94a5918
dangling commit bf1ae36f865ce066220024392dfbcc7a2fa359cf
dangling blob ec4272468be0f90f2b4b6416649e98101a20b015
dangling commit 134bf35bd24e7a7f4303279448c7cb0d33adcdb5
dangling blob b833b9c702b43c1682bfcb841ad7f8d87baabfb1
dangling blob c68b9511f2cd058603950ab630cad3b7935074aa
dangling blob 3a4caeaa63cf6d73f6071d5a8b4566d84cf55898
dangling blob 755cb36c73fd2d26e10711dc2ec221c039d805e7
dangling blob d914e5a277ac574f0b3ee414166977b8e2331b7b
dangling blob dd8c8338a4515b0b3f4b68340dbd10416e444eed
dangling blob e4f4d97b4f7c245a2f5b0ff9671404bea7e6ffc7
dangling blob f28c0bd9f0a4d59816bb0e052578e2a64b70feb6
dangling blob 1a557bdf7c6d9bd972b0f38eb074ed7875a632c3
dangling blob 3e0d0c77b6a47ee8f94a0d56416ee1d8833e89f0
dangling blob 81dd04f987303d080977df050b32865cbf29720f
dangling blob dd5d8e61e48343487189b1264e711a9d72bc1712
dangling blob e26599b870d9c9e3387e018f2d4467d31c8c5dc2
dangling blob 0607498a73ca5faf3b77a7c77107e7787c0f224f
dangling blob 251f0d0bea520723ccf15466cf9f047d0d94d48f
dangling blob 4ecfc189d8c61ff8033e02731bb88005e19f1ca9
dangling blob 6c87b890fc2ff4f13d5a6ffd15355b3c7a9be269
dangling blob bbaf45e48c21e2877c90a3864507ad56c52f6afe

使用:

git show 8f20a05f00d77c78d10a3918d6d34a2d2c097624

所以最后的解决方案是将git show的输出传递给每个blob的文件。

git show <SHA> >> ~/recovered/fileName.js

1 个答案:

答案 0 :(得分:3)

如果您确实提交了refactored分支,那么您应该能够检查该分支并找到完整的提交。另一方面,如果您将更改提交到master,然后执行了硬重置,则应该能够使用lost-found找到提交。取决于您使用的git版本:

git fsck --lost-found

或者

git lost-found

这些命令应该会出现一个悬挂提交的列表,您可以运行git show来查找提交。它应该是列表中的顶级项目之一。