带有未推送的提交/文件的本地git存储库损坏

时间:2019-06-28 13:50:04

标签: git git-fsck

我遇到的问题是,我使用USB驱动程序从旧计算机复制了git项目到新计算机。这个git项目有几个提交,我没有在git remote git仓库上推送。 在移动过程中,没有出现任何问题,最后我的新机器上出现了一个错误的项目。 下一个问题是因为SSD已经执行了trim命令,所以无法从旧计算机恢复文件夹。

项目中缺少javascript源文件,并且.git文件夹中还有许多文件。

所以我的问题是,是否有办法至少恢复我的master分支的LAST状态。我不需要所有的差异或日志的提交消息。

我很高兴能恢复上一个状态。

这是我的状态 一种) 如果我运行git status,我会看到很多删除文件,自然会丢失这400个文件,但是我不仅可以从git中删除它们,因为我不确定恢复的文件是否真的是我需要从master那里获得的文件。

我该如何检查?

b) 如果我运行git fsck --full,则输出为

error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/17/70579d20f6d937a91dd2380ffc7a2183f910d1
error: 1770579d20f6d937a91dd2380ffc7a2183f910d1: object corrupt or missing: .git/objects/17/70579d20f6d937a91dd2380ffc7a2183f910d1
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/23/38d024616acd41408cc5b71d7e34733862f51c
error: 2338d024616acd41408cc5b71d7e34733862f51c: object corrupt or missing: .git/objects/23/38d024616acd41408cc5b71d7e34733862f51c
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/38/5e7e99214be83a6d35ddfc7e73777d250c3797
error: 385e7e99214be83a6d35ddfc7e73777d250c3797: object corrupt or missing: .git/objects/38/5e7e99214be83a6d35ddfc7e73777d250c3797
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/51/d29d95669a683d229a1bfe0dd97764c607a397
error: 51d29d95669a683d229a1bfe0dd97764c607a397: object corrupt or missing: .git/objects/51/d29d95669a683d229a1bfe0dd97764c607a397
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/5f/a82e833f57c7d2d02071cb209a5c80d7cf2e4f
error: 5fa82e833f57c7d2d02071cb209a5c80d7cf2e4f: object corrupt or missing: .git/objects/5f/a82e833f57c7d2d02071cb209a5c80d7cf2e4f
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/71/2b4680e71a895393af671fb80ab9d571dd7f5d
error: 712b4680e71a895393af671fb80ab9d571dd7f5d: object corrupt or missing: .git/objects/71/2b4680e71a895393af671fb80ab9d571dd7f5d
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/71/425292ce0af0bdcf5865ca229967175316bee3
error: 71425292ce0af0bdcf5865ca229967175316bee3: object corrupt or missing: .git/objects/71/425292ce0af0bdcf5865ca229967175316bee3
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/71/f88a2bcf386cffd262b9dce632b5b891d08487
error: 71f88a2bcf386cffd262b9dce632b5b891d08487: object corrupt or missing: .git/objects/71/f88a2bcf386cffd262b9dce632b5b891d08487
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/82/62f59e1a3aea61286fe8cc66428b9a36d7cdbe
error: 8262f59e1a3aea61286fe8cc66428b9a36d7cdbe: object corrupt or missing: .git/objects/82/62f59e1a3aea61286fe8cc66428b9a36d7cdbe
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/9c/07ab0127745d8fad76dd17c41fce0518ea41d8
error: 9c07ab0127745d8fad76dd17c41fce0518ea41d8: object corrupt or missing: .git/objects/9c/07ab0127745d8fad76dd17c41fce0518ea41d8
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/a9/d38ce8b8aadbfd407c0c377819508a4c8652ee
error: a9d38ce8b8aadbfd407c0c377819508a4c8652ee: object corrupt or missing: .git/objects/a9/d38ce8b8aadbfd407c0c377819508a4c8652ee
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/a9/ada09022705eaffa47d805a622f8145bee8abd
error: a9ada09022705eaffa47d805a622f8145bee8abd: object corrupt or missing: .git/objects/a9/ada09022705eaffa47d805a622f8145bee8abd
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/b4/35b5332d4f205299fa7fa504a267631aebabf7
error: b435b5332d4f205299fa7fa504a267631aebabf7: object corrupt or missing: .git/objects/b4/35b5332d4f205299fa7fa504a267631aebabf7
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/b4/289ff557b524093336404cae348a4470e63fd7
error: b4289ff557b524093336404cae348a4470e63fd7: object corrupt or missing: .git/objects/b4/289ff557b524093336404cae348a4470e63fd7
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/cb/8a4c9d332124852a173bd66c0a3d60320a6f15
error: cb8a4c9d332124852a173bd66c0a3d60320a6f15: object corrupt or missing: .git/objects/cb/8a4c9d332124852a173bd66c0a3d60320a6f15
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/cb/cb82eda016b335873da10bdfa8107f7d1aca10
error: cbcb82eda016b335873da10bdfa8107f7d1aca10: object corrupt or missing: .git/objects/cb/cb82eda016b335873da10bdfa8107f7d1aca10
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/d2/492e7c29f9f368696f022a60942c97411ad539
error: d2492e7c29f9f368696f022a60942c97411ad539: object corrupt or missing: .git/objects/d2/492e7c29f9f368696f022a60942c97411ad539
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/e0/c674826f1aabaa7d1733bfea9b88c3a6b6bd54
error: e0c674826f1aabaa7d1733bfea9b88c3a6b6bd54: object corrupt or missing: .git/objects/e0/c674826f1aabaa7d1733bfea9b88c3a6b6bd54
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/e3/af2bb30ce2a4fe06a331b83f528f4892531433
error: e3af2bb30ce2a4fe06a331b83f528f4892531433: object corrupt or missing: .git/objects/e3/af2bb30ce2a4fe06a331b83f528f4892531433
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/ec/0f503601b81d3dbf997c42e044b6582eb49de4
error: ec0f503601b81d3dbf997c42e044b6582eb49de4: object corrupt or missing: .git/objects/ec/0f503601b81d3dbf997c42e044b6582eb49de4
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/f3/a6aa94b6884fcd261b86f891881f94d6944901
error: f3a6aa94b6884fcd261b86f891881f94d6944901: object corrupt or missing: .git/objects/f3/a6aa94b6884fcd261b86f891881f94d6944901
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/f3/c48361466057e9373c01205a3727efb9afa482
error: f3c48361466057e9373c01205a3727efb9afa482: object corrupt or missing: .git/objects/f3/c48361466057e9373c01205a3727efb9afa482
Checking object directories: 100% (256/256), done.
Checking objects: 100% (15191/15191), done.
error: refs/remotes/origin/master: invalid sha1 pointer 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
error: HEAD: invalid reflog entry a376b065dbfb5396f862507c0dfc91d19685da29
error: HEAD: invalid reflog entry a376b065dbfb5396f862507c0dfc91d19685da29
error: HEAD: invalid reflog entry 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
error: HEAD: invalid reflog entry 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
error: HEAD: invalid reflog entry 68a57757f8720470d6d0909a7d0ece8c3fb33579
error: HEAD: invalid reflog entry 68a57757f8720470d6d0909a7d0ece8c3fb33579
error: refs/heads/master: invalid reflog entry a376b065dbfb5396f862507c0dfc91d19685da29
error: refs/heads/master: invalid reflog entry a376b065dbfb5396f862507c0dfc91d19685da29
error: refs/heads/master: invalid reflog entry 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
error: refs/heads/master: invalid reflog entry 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
error: refs/heads/master: invalid reflog entry 68a57757f8720470d6d0909a7d0ece8c3fb33579
error: refs/heads/master: invalid reflog entry 68a57757f8720470d6d0909a7d0ece8c3fb33579
error: refs/remotes/origin/master: invalid reflog entry 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
error: ce19ec673c7dd1019431dbd7860f3bdaac7824f6: invalid sha1 pointer in cache-tree
broken link from    tree 7ca4b9269c421272fb5c6abd6dfcda35657af49c
              to    tree ce19ec673c7dd1019431dbd7860f3bdaac7824f6
broken link from    tree 52c077432a75fdb6eb22d944ff6927fec234bda8
              to    tree ce41d9027902493c54941399faa5367b49869c25
broken link from  commit c059baef7cce8405fd104154f411570d1b1b584e
              to  commit 68a57757f8720470d6d0909a7d0ece8c3fb33579
broken link from  commit b67db070ad68a4cb5d150fc183b8927515f95f29
              to  commit 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
broken link from    tree 5c72aa8e33b58d8300a784ca34fcaee0a4357c48
              to    blob a3c4727e0ad9be52b3d7a8f2fe643901cfcc10a6
broken link from    tree f22c8cf2bb0baaaaa5d4b23a5ba10710dd0c40f3
              to    tree ce3f6afe9bc82c47e97788933c8b10a6cb4c3e36
broken link from    tree cabde56ba09b33b7e218f3d18d5308290e826047
              to    tree a3255b54e1b50929b3687c980624e1ab8beb27f9
broken link from  commit 4c7054e91238ce3dfc3684b453ac5bf943886cfe
              to  commit a376b065dbfb5396f862507c0dfc91d19685da29
dangling blob f581b478c68af5d59f1e404b3be8fedad8e2cda7
dangling blob 07020b78e53c4e141ca13510d8f0d4d3a35ae497
dangling tree 9c82b676c2f9954949339486e4b26c8475f59387
dangling blob f7822f3fdf8716ca5ba1d06edc949015b9027ec1
dangling blob 1c0413138001c03dd9a00165ade3890af7d32e6e
dangling blob 600592db290a20748fbb8893ca76accace5d43eb
dangling blob 4286718fb4257437124bb00180069a28868c2aec
missing tree 9c07ab0127745d8fad76dd17c41fce0518ea41d8
missing blob 68088f28f06d23f0333380ba2b1c4b9e6083eb9b
dangling blob bc086c58c9d509d5f3f912d5bbfcac37807e46a0
missing tree cb8a4c9d332124852a173bd66c0a3d60320a6f15
dangling blob 6e8b7b076c864fa7e634c473e8b29c52e77d3caf
missing blob 680dce132a8e2cebc1acd5ce64f7af8b3e4e7ecc
dangling blob e28d3ca6ab695c51aaf15c5238aa8cf2e7080317
dangling blob 9e0fae810698f7a5c70c973c4af733b92f404b50
missing blob ec0f503601b81d3dbf997c42e044b6582eb49de4
dangling tree fe0fe2fcf6e10af696e70c3ac6982192fe37f311
dangling blob 5c922786e96cbc1708b7b166174695556d8c11e7
dangling blob 6f9504e972fe19ea729b17e219e7f8e1d3afb5b4
dangling blob 36963a145f797a5510e8d0fbc5ad7466faf865b5
dangling tree 4a16dabaeebab021c45e7bf5b8509be4b74727a8
dangling blob 4d172d83a702e8b07cd51e19285b961eeb1c9a3b
dangling commit 289950c59006afcbf44000925d4a2514114e3414
dangling blob 7a190173401762e62abfae41aa6d087bb0eb3b0e
missing tree ce19ec673c7dd1019431dbd7860f3bdaac7824f6
dangling tree c89b2ac8773eba79f86ec68b477f4d05035d2e43
dangling blob 2d9d6c8dbe26b3ee00797fd7752732cd97a88f41
dangling blob 391e06977ae8d022a5655fc37efc8a0edc72c2a8
dangling blob 1120bad11cf5cc6abf2632fd014d2741119e22cd
dangling blob 62203fc2395ad53b5a0494f55dabd32b2e2cbe6a
dangling tree a723aff7eadeaa4614a3c8be3dec4a9102709342
missing commit 68a57757f8720470d6d0909a7d0ece8c3fb33579
missing tree a3255b54e1b50929b3687c980624e1ab8beb27f9
missing tree f3a6aa94b6884fcd261b86f891881f94d6944901
dangling blob e9a792d4afb81ee23cb5f835f08dfc664b654901
missing blob b4289ff557b524093336404cae348a4470e63fd7
dangling blob d7297afd406cc78585ce33be4657f4783934d96c
missing blob 712b4680e71a895393af671fb80ab9d571dd7f5d
dangling blob 022d2a97beb73c10103936f0b52fb2ac237a6371
missing blob a9ada09022705eaffa47d805a622f8145bee8abd
dangling blob ee30024af2f2c165f0ec2337508b5294ffc5e7df
dangling blob a634111af8395217e153a24884352cfd60dcb7c2
dangling blob c7b4bbbecaa5b3da71b94d582b6cfbd3bf31190c
dangling tree 7ab570f88e3b16b02d29f698205e2a4329216925
missing blob b435b5332d4f205299fa7fa504a267631aebabf7
dangling blob 7bb6c53c5a3ca0d0f1e35f7015c9b5cbc99baabd
dangling blob a4363ee7230814d28d210e15c73632ba190a691e
dangling blob 6bb70ca0d740144bdf7bbd56759275ea2b7a6af9
missing blob 2338d024616acd41408cc5b71d7e34733862f51c
dangling blob e5bcd91aebf994ed0fc19924c1c5ec5338a25d0f
missing tree ce3f6afe9bc82c47e97788933c8b10a6cb4c3e36
dangling blob 1b4041d6a8b2bd41e09f0f8ccce955b19cc29288
missing tree ce41d9027902493c54941399faa5367b49869c25
missing blob 71425292ce0af0bdcf5865ca229967175316bee3
dangling blob 7b42a46be1e7d3b84c1fc0a3f161f0388b0b209e
missing blob a3c4727e0ad9be52b3d7a8f2fe643901cfcc10a6
missing tree f3c48361466057e9373c01205a3727efb9afa482
dangling commit fc450856d4f477bfd109f0bdad8e3d2cfc073042
dangling tree 17c671993c3861773ed9d822e911d8dbd9787fae
dangling blob a6461295d43643e9e7e585d936e37cb7ffa737d9
missing tree e0c674826f1aabaa7d1733bfea9b88c3a6b6bd54
missing tree d2492e7c29f9f368696f022a60942c97411ad539
dangling blob 324a19442e736470bb6caf6bc529b624b21e2ac3
dangling blob 2d4b93d9a876d5b49ecb40a0cf3972c834eb36d1
missing blob cbcb82eda016b335873da10bdfa8107f7d1aca10
dangling blob b24cd182987c014f7aa422b320af887d5b4d9adc
dangling blob 4f4d7836e8fae06ef56638e09e595bb25110221d
dangling blob 704d9a0982d067da50822b6b96b7e6c3a01162dd
dangling blob 854fc64e005871f1f812f9c62eeb206847664b29
missing tree 51d29d95669a683d229a1bfe0dd97764c607a397
missing blob a9d38ce8b8aadbfd407c0c377819508a4c8652ee
missing blob ced6f6f35d195fdf1022e6a89beb0fff7451b6a9
dangling commit c0dabfed2b01becd8760c26ae4fea73bd2cfc961
dangling tree 41dc55aef89af8ab1ea094341299486020212312
dangling blob b6dcfda109a12ff644caac317172e58e2f50bc6b
missing tree 385e7e99214be83a6d35ddfc7e73777d250c3797
dangling blob 93e17a7c0766d0ffc99175a5963c8b055ee38624
dangling tree 54e6619f503043505458a690d671d75317887821
dangling commit 91e60aa41484696df0352bf957fec6dacabbf108
dangling blob 1cea6c671825b0df4bb53ad974a6be996716fa45
dangling tree 74eb741d2d600e3e8d50a6989967b5428fd35a28
dangling blob e2ec29ba67a385aab37b64c8718abd8258564bd7
dangling blob 60edce172e58d087e83c603e65216a93d5628349
dangling blob f66dd555ae5fe4b34e07941dc44f5981088a2aca
dangling commit c96fb4684e950c83fca142214f9b8eb9c89cde01
dangling blob dfef14033c17d2006ff96ba71bfc21cf4cdc48e5
missing tree 1770579d20f6d937a91dd2380ffc7a2183f910d1
dangling blob 58f1ca8708e2e82377bbed9e98fb75e16cba7786
dangling blob c77237efa054946f82f6127c66edd454c87813a0
dangling blob c2736bd6e2d72d75fa4466be295e86d3d44d8678
dangling blob 00742f05bdefb7624b856d6de5ff09b056825248
missing commit 68755e9d068a27ee61fee6b661f1c0b9a067fdbf
missing commit a376b065dbfb5396f862507c0dfc91d19685da29
missing blob 71f88a2bcf386cffd262b9dce632b5b891d08487
dangling blob c47cb4c37c4e715ad0109f29526b680a73e5d1f6
dangling blob 09fdd736b4950652bafe7bb7a726c85184d51c2f
dangling tree af7f376b000eedf4cb4f716600f5fc6ee18e442a

2 个答案:

答案 0 :(得分:0)

尝试一下:

  1. 为安全起见,请复制存储库文件夹。

  2. 运行git reset --hard master。这会将工作目录重置为master分支。

但是这可能会失败,因为似乎缺少git对象。如果失败,则可能能够从远程获取丢失的提交对象。如果保留了所有不在远程计算机上的本地提交,则可以恢复文件:

  1. 为安全起见,请复制存储库文件夹。

  2. 在远程上创建一个新分支,指向主节点指向的同一提交。也许将其命名为b

  3. git pull origin b; git checkout b

  4. 现在您在分支b上,运行git merge master

  5. git checkout master; git reset --hard b

我希望这对您有用。

答案 1 :(得分:0)

需要很多工作,但是您也可以尝试git plumbing commands。这意味着检查您想要文件的提交,然后自己解压缩文件。我建议只阅读我刚刚链接的一章,但让您知道它如何工作:

  1. cat-file开始了解提交链接到的对象树:
$ git cat-file -p master
tree d8281...
parent 69daf...
...
  1. 使用cat-file继续挖掘树的哈希值:
git cat-file -p d8281...
100644 blob 1ff0c4...    .gitattributes
100644 blob 14cf64...    .gitignore
040000 tree 2c7fe5...    MyDir
100644 blob 1fe364...    README.MD
...
  1. 现在我们可以解压readme.md了:
git cat-file -p 1fe364... > README.MD
  1. 进一步浏览目录树以查找其他文件(请参阅第二步),然后将其解压缩到正确的目录和文件中。

您可以使上述过程自动化,并编写一个程序为您完成:)