首页 > 解决方案 > 如何从数据恢复软件中恢复 .git 文件夹?

问题描述

我不小心使用 shift+delete 删除了所有文件,包括 .git 文件夹。

我设法使用数据恢复软件恢复它们。但是,该目录无法工作。

错误信息如下:

$ git fsck --full
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/01/98125b8c48091084c72745ebfe3f6455e86f0b
error: 0198125b8c48091084c72745ebfe3f6455e86f0b: object corrupt or missing: .git/objects/01/98125b8c48091084c72745ebfe3f6455e86f0b
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/06/41835cce4565714b399fa7bc06d1ff4332ff67
error: 0641835cce4565714b399fa7bc06d1ff4332ff67: object corrupt or missing: .git/objects/06/41835cce4565714b399fa7bc06d1ff4332ff67
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/0a/6313c77a98b9faa9974d8bac8f0a171dd2830b
error: 0a6313c77a98b9faa9974d8bac8f0a171dd2830b: object corrupt or missing: .git/objects/0a/6313c77a98b9faa9974d8bac8f0a171dd2830b
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/0a/7e31994c90511e78bc316f8298b1b038007475
error: 0a7e31994c90511e78bc316f8298b1b038007475: object corrupt or missing: .git/objects/0a/7e31994c90511e78bc316f8298b1b038007475
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/0c/e475c134135febd21a502d284ef5e113e69a6f
error: 0ce475c134135febd21a502d284ef5e113e69a6f: object corrupt or missing: .git/objects/0c/e475c134135febd21a502d284ef5e113e69a6f
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/0d/5944451f850b7f23739be53e15651771b760d0
error: 0d5944451f850b7f23739be53e15651771b760d0: object corrupt or missing: .git/objects/0d/5944451f850b7f23739be53e15651771b760d0
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/0e/22b3ed0519e3cb3131becd0f2181edee96d437
error: 0e22b3ed0519e3cb3131becd0f2181edee96d437: object corrupt or missing: .git/objects/0e/22b3ed0519e3cb3131becd0f2181edee96d437
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/11/11dcbcec6b0ffc2ac23d640db13658c0c1e269
error: 1111dcbcec6b0ffc2ac23d640db13658c0c1e269: object corrupt or missing: .git/objects/11/11dcbcec6b0ffc2ac23d640db13658c0c1e269
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/11/3371a00d84435f711c859af5161f7d615ffc18
error: 113371a00d84435f711c859af5161f7d615ffc18: object corrupt or missing: .git/objects/11/3371a00d84435f711c859af5161f7d615ffc18
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/11/99a4c24ee27e5b26fb93747b238c5af2c187de
error: 1199a4c24ee27e5b26fb93747b238c5af2c187de: object corrupt or missing: .git/objects/11/99a4c24ee27e5b26fb93747b238c5af2c187de
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/11/c791eadc3383ed1418736461faf7e5441286a7
error: 11c791eadc3383ed1418736461faf7e5441286a7: object corrupt or missing: .git/objects/11/c791eadc3383ed1418736461faf7e5441286a7
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/14/97687cb699d96433a963b2ec0150b69374836c
error: 1497687cb699d96433a963b2ec0150b69374836c: object corrupt or missing: .git/objects/14/97687cb699d96433a963b2ec0150b69374836c
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/14/a3e787647f5e67cdf056015c75669a741612c3
error: 14a3e787647f5e67cdf056015c75669a741612c3: object corrupt or missing: .git/objects/14/a3e787647f5e67cdf056015c75669a741612c3
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/1b/8d6853c97bc5b80deb6cd11a85eec1fff7f22a
error: 1b8d6853c97bc5b80deb6cd11a85eec1fff7f22a: object corrupt or missing: .git/objects/1b/8d6853c97bc5b80deb6cd11a85eec1fff7f22a
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/1d/910399a2b4fadd4211c9e2e39708cefd4d19fa
error: 1d910399a2b4fadd4211c9e2e39708cefd4d19fa: object corrupt or missing: .git/objects/1d/910399a2b4fadd4211c9e2e39708cefd4d19fa
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/21/693933157a52b57b2f04469d17ee0082da0a3b
error: 21693933157a52b57b2f04469d17ee0082da0a3b: object corrupt or missing: .git/objects/21/693933157a52b57b2f04469d17ee0082da0a3b
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/21/b7edc3b60f62799fce83bcb6235f882c72e007
error: 21b7edc3b60f62799fce83bcb6235f882c72e007: object corrupt or missing: .git/objects/21/b7edc3b60f62799fce83bcb6235f882c72e007
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/22/7fa9718078f90bb6c3b88909b7ba749ac63c0d
error: 227fa9718078f90bb6c3b88909b7ba749ac63c0d: object corrupt or missing: .git/objects/22/7fa9718078f90bb6c3b88909b7ba749ac63c0d
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/22/b5d7b2b0429176678b565e71200d9dd316b634
error: 22b5d7b2b0429176678b565e71200d9dd316b634: object corrupt or missing: .git/objects/22/b5d7b2b0429176678b565e71200d9dd316b634
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/28/83fe61f7754149b0793486dadc947c7db49f31
error: 2883fe61f7754149b0793486dadc947c7db49f31: object corrupt or missing: .git/objects/28/83fe61f7754149b0793486dadc947c7db49f31
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/2b/a68a1b2a6e4c630f1deea9ae8153874b4bd69d
error: 2ba68a1b2a6e4c630f1deea9ae8153874b4bd69d: object corrupt or missing: .git/objects/2b/a68a1b2a6e4c630f1deea9ae8153874b4bd69d
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/2b/ea4c4870a0315b163cd244e10bee31833239f8
error: 2bea4c4870a0315b163cd244e10bee31833239f8: object corrupt or missing: .git/objects/2b/ea4c4870a0315b163cd244e10bee31833239f8
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/2e/a411ce2c07a01114bf34c833cedd926056c916
error: 2ea411ce2c07a01114bf34c833cedd926056c916: object corrupt or missing: .git/objects/2e/a411ce2c07a01114bf34c833cedd926056c916
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/31/adf2c3f944c891411c85de023efca8fa1d67f2
error: 31adf2c3f944c891411c85de023efca8fa1d67f2: object corrupt or missing: .git/objects/31/adf2c3f944c891411c85de023efca8fa1d67f2
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/35/5abbe5ec366ddb209819f4f1886023e1af9873
error: 355abbe5ec366ddb209819f4f1886023e1af9873: object corrupt or missing: .git/objects/35/5abbe5ec366ddb209819f4f1886023e1af9873
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/3f/74c44b071aa246ec013ef2430e00aee203fe0f
error: 3f74c44b071aa246ec013ef2430e00aee203fe0f: object corrupt or missing: .git/objects/3f/74c44b071aa246ec013ef2430e00aee203fe0f
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/3f/e16d793cfc8715375aca8aeace543b8af2e766
error: 3fe16d793cfc8715375aca8aeace543b8af2e766: object corrupt or missing: .git/objects/3f/e16d793cfc8715375aca8aeace543b8af2e766
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/41/e780a3b33db38ac52b2f4b99aaba6a5f623eb2
error: 41e780a3b33db38ac52b2f4b99aaba6a5f623eb2: object corrupt or missing: .git/objects/41/e780a3b33db38ac52b2f4b99aaba6a5f623eb2
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/42/0002ec6b4e1ef182446aeb72ee79b4580b2b97
error: 420002ec6b4e1ef182446aeb72ee79b4580b2b97: object corrupt or missing: .git/objects/42/0002ec6b4e1ef182446aeb72ee79b4580b2b97
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/45/0c24472ab42f2aeddbb197152b68f25c1be2cf
error: 450c24472ab42f2aeddbb197152b68f25c1be2cf: object corrupt or missing: .git/objects/45/0c24472ab42f2aeddbb197152b68f25c1be2cf
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/46/dea3d261e08276815fec3b410ae7db221d7cad
error: 46dea3d261e08276815fec3b410ae7db221d7cad: object corrupt or missing: .git/objects/46/dea3d261e08276815fec3b410ae7db221d7cad
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/46/e823c3c1e582dcc20a79cc6c016395fbe027c5
error: 46e823c3c1e582dcc20a79cc6c016395fbe027c5: object corrupt or missing: .git/objects/46/e823c3c1e582dcc20a79cc6c016395fbe027c5
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/47/3834606e32ea4d331de593a95b8717f5820a27
error: 473834606e32ea4d331de593a95b8717f5820a27: object corrupt or missing: .git/objects/47/3834606e32ea4d331de593a95b8717f5820a27
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/48/61770c4a2a0af68272b5fa02feee1fc8542cce
error: 4861770c4a2a0af68272b5fa02feee1fc8542cce: object corrupt or missing: .git/objects/48/61770c4a2a0af68272b5fa02feee1fc8542cce
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/4a/22c30c12f70cc2615f3a81a393c93cde7464a6
error: 4a22c30c12f70cc2615f3a81a393c93cde7464a6: object corrupt or missing: .git/objects/4a/22c30c12f70cc2615f3a81a393c93cde7464a6
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/4a/826ced47848db2b9919f39918dfeed0b1341ea
error: 4a826ced47848db2b9919f39918dfeed0b1341ea: object corrupt or missing: .git/objects/4a/826ced47848db2b9919f39918dfeed0b1341ea
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/4a/be14b291b709bf520c719d31ee2fb39a78855e
error: 4abe14b291b709bf520c719d31ee2fb39a78855e: object corrupt or missing: .git/objects/4a/be14b291b709bf520c719d31ee2fb39a78855e
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/4c/54b95510178d53be5b37f53f1b4156777c9334
error: 4c54b95510178d53be5b37f53f1b4156777c9334: object corrupt or missing: .git/objects/4c/54b95510178d53be5b37f53f1b4156777c9334
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/4d/273b7ea602857dae2eb088a2e969d217da58b8
error: 4d273b7ea602857dae2eb088a2e969d217da58b8: object corrupt or missing: .git/objects/4d/273b7ea602857dae2eb088a2e969d217da58b8
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/50/bcdc3bb57fc2e0ff14dfc9f5c2830ef4e96fa9
error: 50bcdc3bb57fc2e0ff14dfc9f5c2830ef4e96fa9: object corrupt or missing: .git/objects/50/bcdc3bb57fc2e0ff14dfc9f5c2830ef4e96fa9
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/50/eca4ab2c56bbc43eb8e2189e9a4def15a91bde
error: 50eca4ab2c56bbc43eb8e2189e9a4def15a91bde: object corrupt or missing: .git/objects/50/eca4ab2c56bbc43eb8e2189e9a4def15a91bde
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/51/5d92bf8a8eef62220cdb821ed4c7521aa4bea2
error: 515d92bf8a8eef62220cdb821ed4c7521aa4bea2: object corrupt or missing: .git/objects/51/5d92bf8a8eef62220cdb821ed4c7521aa4bea2
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/54/6ece60c491c917d844477ad685e4cdba9a5e96
error: 546ece60c491c917d844477ad685e4cdba9a5e96: object corrupt or missing: .git/objects/54/6ece60c491c917d844477ad685e4cdba9a5e96
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/55/e605d171da9c6b184338ea2e8969a64941caa8
error: 55e605d171da9c6b184338ea2e8969a64941caa8: object corrupt or missing: .git/objects/55/e605d171da9c6b184338ea2e8969a64941caa8
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/56/971238585e9e64ccf846f5088ef6ce50b09c32
error: 56971238585e9e64ccf846f5088ef6ce50b09c32: object corrupt or missing: .git/objects/56/971238585e9e64ccf846f5088ef6ce50b09c32
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/5d/1970fe3d28b1f4e6df09109c181342b28212e8
error: 5d1970fe3d28b1f4e6df09109c181342b28212e8: object corrupt or missing: .git/objects/5d/1970fe3d28b1f4e6df09109c181342b28212e8
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/5d/aae9ffbd2bfb18756333dea9614d57bcfa611a
error: 5daae9ffbd2bfb18756333dea9614d57bcfa611a: object corrupt or missing: .git/objects/5d/aae9ffbd2bfb18756333dea9614d57bcfa611a
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/5e/9ad777be1a0cbf6cc61f768cadb64a2b138e20
error: 5e9ad777be1a0cbf6cc61f768cadb64a2b138e20: object corrupt or missing: .git/objects/5e/9ad777be1a0cbf6cc61f768cadb64a2b138e20
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/62/ba02c69d69050591e84e8afbaade3616ad16c7
error: 62ba02c69d69050591e84e8afbaade3616ad16c7: object corrupt or missing: .git/objects/62/ba02c69d69050591e84e8afbaade3616ad16c7
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/65/fc6108411e1885b66ec0c40a989543e59b6831
error: 65fc6108411e1885b66ec0c40a989543e59b6831: object corrupt or missing: .git/objects/65/fc6108411e1885b66ec0c40a989543e59b6831
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/67/fd408ca9402e3fbcdb25d01b6904aac5b75c32
error: 67fd408ca9402e3fbcdb25d01b6904aac5b75c32: object corrupt or missing: .git/objects/67/fd408ca9402e3fbcdb25d01b6904aac5b75c32
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/69/937dc70e114fc7b7e603030c3ec1243cda43f0
error: 69937dc70e114fc7b7e603030c3ec1243cda43f0: object corrupt or missing: .git/objects/69/937dc70e114fc7b7e603030c3ec1243cda43f0
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/6a/9c16792b726be086bfe29987a9e5c333b6054d
error: 6a9c16792b726be086bfe29987a9e5c333b6054d: object corrupt or missing: .git/objects/6a/9c16792b726be086bfe29987a9e5c333b6054d
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/6c/a9ecfc76c0e63ff77a81597a1b5b1e409aac6d
error: 6ca9ecfc76c0e63ff77a81597a1b5b1e409aac6d: object corrupt or missing: .git/objects/6c/a9ecfc76c0e63ff77a81597a1b5b1e409aac6d
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/70/3047221c64afd443e790680acf8ff42e8c9c10
error: 703047221c64afd443e790680acf8ff42e8c9c10: object corrupt or missing: .git/objects/70/3047221c64afd443e790680acf8ff42e8c9c10
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/74/edd761f933e3656b1be901aa7d8d4209d933bc
error: 74edd761f933e3656b1be901aa7d8d4209d933bc: object corrupt or missing: .git/objects/74/edd761f933e3656b1be901aa7d8d4209d933bc
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/78/873ddb4f8438aa86e3c6c84eaf8e5d4bf8e779
error: 78873ddb4f8438aa86e3c6c84eaf8e5d4bf8e779: object corrupt or missing: .git/objects/78/873ddb4f8438aa86e3c6c84eaf8e5d4bf8e779
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/79/f1ed94ca2fcf6ce4a6edccea0ea4978f131fca
error: 79f1ed94ca2fcf6ce4a6edccea0ea4978f131fca: object corrupt or missing: .git/objects/79/f1ed94ca2fcf6ce4a6edccea0ea4978f131fca
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/79/f484ae003f8ac331721e253d6fe5cf2e6c1ccf
error: 79f484ae003f8ac331721e253d6fe5cf2e6c1ccf: object corrupt or missing: .git/objects/79/f484ae003f8ac331721e253d6fe5cf2e6c1ccf
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/7a/0a66ab2fe5a07c0f59a6b28efce2e935fe8135
error: 7a0a66ab2fe5a07c0f59a6b28efce2e935fe8135: object corrupt or missing: .git/objects/7a/0a66ab2fe5a07c0f59a6b28efce2e935fe8135
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/7a/3f762421ba54d071575447131445ed7012bc06
error: 7a3f762421ba54d071575447131445ed7012bc06: object corrupt or missing: .git/objects/7a/3f762421ba54d071575447131445ed7012bc06
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/80/5891997f88abcc5027845c677af99a50c4f175
error: 805891997f88abcc5027845c677af99a50c4f175: object corrupt or missing: .git/objects/80/5891997f88abcc5027845c677af99a50c4f175
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/80/bf9abc326b641b9f9fe74e5e483b42ba8e463c
error: 80bf9abc326b641b9f9fe74e5e483b42ba8e463c: object corrupt or missing: .git/objects/80/bf9abc326b641b9f9fe74e5e483b42ba8e463c
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/86/0aa65aea4eda58f240f1a10bbf0d8bb8a9033f
error: 860aa65aea4eda58f240f1a10bbf0d8bb8a9033f: object corrupt or missing: .git/objects/86/0aa65aea4eda58f240f1a10bbf0d8bb8a9033f
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/86/5fde5ef377d5f2bc3bec667a6a607d70fb0b86
error: 865fde5ef377d5f2bc3bec667a6a607d70fb0b86: object corrupt or missing: .git/objects/86/5fde5ef377d5f2bc3bec667a6a607d70fb0b86
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/87/10df430fb733f738651ac3a236e192744de64b
error: 8710df430fb733f738651ac3a236e192744de64b: object corrupt or missing: .git/objects/87/10df430fb733f738651ac3a236e192744de64b
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/88/39149549828ffd0ebece939715162fe193b4ec
error: 8839149549828ffd0ebece939715162fe193b4ec: object corrupt or missing: .git/objects/88/39149549828ffd0ebece939715162fe193b4ec
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/8b/2550f361cccf5e04a796d0c9df98df84e0ca71
error: 8b2550f361cccf5e04a796d0c9df98df84e0ca71: object corrupt or missing: .git/objects/8b/2550f361cccf5e04a796d0c9df98df84e0ca71

error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/91/9624b6c48f994dcd63f6dd940a4170473f389e
error: 919624b6c48f994dcd63f6dd940a4170473f389e: object corrupt or missing: .git/objects/91/9624b6c48f994dcd63f6dd940a4170473f389e

error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/d0/320fbcf3bb7284b61e64641ed46bb92e5ec0d1
error: d0320fbcf3bb7284b61e64641ed46bb92e5ec0d1: object corrupt or missing: .git/objects/d0/320fbcf3bb7284b61e64641ed46bb92e5ec0d1
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/d4/6d8363627e0f244ed668ae328a3094ca418285
error: d46d8363627e0f244ed668ae328a3094ca418285: object corrupt or missing: .git/objects/d4/6d8363627e0f244ed668ae328a3094ca418285
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/d7/1b6036cad3c134630273a276ba1eb95de40642
error: d71b6036cad3c134630273a276ba1eb95de40642: object corrupt or missing: .git/objects/d7/1b6036cad3c134630273a276ba1eb95de40642
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/d7/b0f89421c0cf17ba2b4cc03b563e107b1f0f48
error: d7b0f89421c0cf17ba2b4cc03b563e107b1f0f48: object corrupt or missing: .git/objects/d7/b0f89421c0cf17ba2b4cc03b563e107b1f0f48
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/d8/f8bdb7f327d7bd3a82bcd0b182fe8beadf3b92
error: d8f8bdb7f327d7bd3a82bcd0b182fe8beadf3b92: object corrupt or missing: .git/objects/d8/f8bdb7f327d7bd3a82bcd0b182fe8beadf3b92
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/d9/c5bd34ea193b8d05f9838fd7c3156a877e8547
error: d9c5bd34ea193b8d05f9838fd7c3156a877e8547: object corrupt or missing: .git/objects/d9/c5bd34ea193b8d05f9838fd7c3156a877e8547
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/da/4af6bcb367b956099cc9b0e677ddb5c3be2a85
error: da4af6bcb367b956099cc9b0e677ddb5c3be2a85: object corrupt or missing: .git/objects/da/4af6bcb367b956099cc9b0e677ddb5c3be2a85
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/db/28fb85be6a3ed1c519c3226aca42a80cc3c457
error: db28fb85be6a3ed1c519c3226aca42a80cc3c457: object corrupt or missing: .git/objects/db/28fb85be6a3ed1c519c3226aca42a80cc3c457
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/df/e7088b9a0998b9a7955a7e045b0d5e6567daf3
error: dfe7088b9a0998b9a7955a7e045b0d5e6567daf3: object corrupt or missing: .git/objects/df/e7088b9a0998b9a7955a7e045b0d5e6567daf3
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/e0/cb6a084a1a24550a0dbc9a1a00d1984c6990d7
error: e0cb6a084a1a24550a0dbc9a1a00d1984c6990d7: object corrupt or missing: .git/objects/e0/cb6a084a1a24550a0dbc9a1a00d1984c6990d7

error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/f3/0c8f0e95fa8bfb0b5f9c61a9ec8e39a81fdfcb
error: f30c8f0e95fa8bfb0b5f9c61a9ec8e39a81fdfcb: object corrupt or missing: .git/objects/f3/0c8f0e95fa8bfb0b5f9c61a9ec8e39a81fdfcb
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/f4/9e82c0bd6d5f129a7ddf47f044f7b2a6a467e5
error: f49e82c0bd6d5f129a7ddf47f044f7b2a6a467e5: object corrupt or missing: .git/objects/f4/9e82c0bd6d5f129a7ddf47f044f7b2a6a467e5
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/f7/42941e724216637216bbf46074665e8f0d1c9e
error: f742941e724216637216bbf46074665e8f0d1c9e: object corrupt or missing: .git/objects/f7/42941e724216637216bbf46074665e8f0d1c9e
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/f7/58a10d09f62a615793b75748d2464d6f0f91bf
error: f758a10d09f62a615793b75748d2464d6f0f91bf: object corrupt or missing: .git/objects/f7/58a10d09f62a615793b75748d2464d6f0f91bf
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/f8/88cbe23e783bbe580013f96fce6b10044a0b39
error: f888cbe23e783bbe580013f96fce6b10044a0b39: object corrupt or missing: .git/objects/f8/88cbe23e783bbe580013f96fce6b10044a0b39
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/f8/947e3ee18fdafcb6ccd180c86336c1d36f3314
error: f8947e3ee18fdafcb6ccd180c86336c1d36f3314: object corrupt or missing: .git/objects/f8/947e3ee18fdafcb6ccd180c86336c1d36f3314
error: inflate: data stream error (unknown compression method)
error: unable to unpack header of .git/objects/fd/7ec61efdaddffcc19a9c1a532f1473a117e2e0
error: fd7ec61efdaddffcc19a9c1a532f1473a117e2e0: object corrupt or missing: .git/objects/fd/7ec61efdaddffcc19a9c1a532f1473a117e2e0
Checking object directories: 100% (256/256), done.
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: packfile .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.pack index not opened
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: refs/heads/master: invalid sha1 pointer d7a8d53414e3c504adaccfff7d6745ff758a0075
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: refs/remotes/origin/HEAD: invalid sha1 pointer d7a8d53414e3c504adaccfff7d6745ff758a0075
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: refs/remotes/origin/feature_MarkPoint: invalid sha1 pointer d7a8d53414e3c504adaccfff7d6745ff758a0075
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: refs/remotes/origin/feature_UI: invalid sha1 pointer 05f481f4a51d516ffd97ece693f60e01c3fc5f7c
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: refs/remotes/origin/feature_UI2.0: invalid sha1 pointer 859174757acb00d3733c64496d429bab0ae4913f
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: wrong index v1 file size in .git/objects/pack/pack-7b418a0979dadc3f79cd4c80d5cd953db67ec1b5.idx
error: refs/remotes/origin/master: invalid sha1 pointer d7a8d53414e3c504adaccfff7d6745ff758a0075
error: refs/heads/20210408Field: invalid reflog entry acfa6d66590038da94caaf286b7c5b7e88d22208
error: refs/heads/20210408Field: invalid reflog entry acfa6d66590038da94caaf286b7c5b7e88d22208
error: refs/heads/master: invalid reflog entry d7a8d53414e3c504adaccfff7d6745ff758a0075
error: refs/remotes/origin/20210408Field: invalid reflog entry acfa6d66590038da94caaf286b7c5b7e88d22208
error: refs/remotes/origin/Field0819: invalid reflog entry d7a8d53414e3c504adaccfff7d6745ff758a0075
error: refs/remotes/origin/Field0819: invalid reflog entry d7a8d53414e3c504adaccfff7d6745ff758a0075
error: refs/remotes/origin/HEAD: invalid reflog entry d7a8d53414e3c504adaccfff7d6745ff758a0075
error: bad signature 0x00000000
fatal: index file corrupt

我不确定是否所有文件都已恢复,但我认为它们已恢复,因为目录结构看起来像一个普通的 git 文件夹。

我想尽可能地恢复,尤其是我的本地分支还没有提交到远程。

请帮忙!

标签: gitcorruptdata-recovery

解决方案


  1. 根据您从数据恢复软件中恢复的方式制作当前状态的存储库副本,以便您至少可以返回备份

  2. 在您意外删除存储库之前,检查您是否在文件夹结构中获得了整个存储库。

您可以尝试以下命令,并删除损坏的对象,但对象是您的数据文件,但请查看以下网页的输出,https://itqna.net/questions/1935/git-fetch-inflate-数据流错误和 sha1-collision-found

删除损坏的引用:

$ rm rm .git/refs/remotes/origin/hotfix-{branch-1} 垃圾收集/垃圾收集器积极收集所有损坏的对象

: $ git gc --aggressive 检查一切是否正常,以防万一?

$ git fsck --full


The information below was taken from the following page and should be really useful for you and for you to learn about the .git folder as well.

https://git.seveas.net/repairing-and-recovering-broken-git-repositories.html

Repairing and recovering broken git repositories

Whether it's filesystem corruption due to a power outage, an overactive virus scanner, or a simple slip of the keyboard, it is not uncommon to hear about corruption inside the .git directory. It is much rarer to hear about such corruption being caused by git. I personally have never seen it, and it would surely be considered a critical bug if it were to happen.

So, what can we remove while still having something to recover? Well, pretty much everything except the objects directory. And even if you remove files from there, all other objects will be recoverable.

Make backups and try in a copy first

Your repository is already broken. Don't break it any further without first making sure nobody can access it except you, making a backup (tar, rsync) of the repository and first trying the commands in a copy of the repository.

$ tar zcvf myrepo.tar.gz myrepo $ rsync -av myrepo/ myrepo-copy/ $ cd myrepo-copy/

All the files in `.git` are gone!

One of the more interesting (and surprisingly easy to solve!) cases of corruption I've seen is someone losing all the files in the `.git` directory, but no directories or files inside those directories were lost. We never did find out how it happened, but it was surprisingly easy to fix this.

The gitrepository-layout manpage can tell you which files git expects to exist. Below you find out how to restore them when they've gone missing.

HEAD

When `.git/HEAD` is gone, git doesn't even think your repository is a repository. So really, we must fix this first or else we will not be able to use any git commands to salvage the rest.

$ rm .git/HEAD $ git 状态


fatal: Not a git repository (or any of the parent directories): `.git`
This is one of the very few times where touching files inside `.git` is OK. If you know which branch you had checked out, you can simply put that information inside `.git/HEAD`. I had the master branch checked out before deleting the HEAD file.

$ echo 'ref: refs/heads/master' > .git/HEAD $ git status


On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
If you don't know which branch (or even commit in detached HEAD state) you had checked out, try a few. If you picked the wrong one, git diff will tell you that there are many uncommitted changes.

index

Should you misplace your index, git thinks that all your files have been deleted from the repository with git rm --cached.

$ rm .git/index $ git status On branch master 你的分支是最新的'origin/master'。要提交的更改:(使用“git reset HEAD ...”取消暂存)

deleted:    .gitignore
deleted:    docs/index.rst
deleted:    setup.py

未跟踪的文件:(使用“git add ...”来包含将要提交的文件)

.gitignore
docs/
setup.py

To rebuild the index, you can simply do git reset --mixed. This makes the index look like the last commit while leaving the worktree alone. If you had any local changes you git added but did not commit yet, you will need to re-add those.

$ git reset --mixed $ git status


On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
config

When the configuration is gone, you can't really get it back. But you can set the default configuration variables and re-add your remotes. This should get you into a workable state. So let's first do the default configuration.

$ 混帐初始化


Git's init command will create a configuration if none exists. It will not wipe any objects, so it's safe to run in an existing repository. If your repository was a shared repository, you will need to tell git that manually though, using git config core.sharedRepository true.

With the configuration in place, we can re-add our remotes. My corrupt repository has one remote that lives on GitHub, so I'll add it.

$ git remote add origin git@github.com:seveas/whelk.git $ git fetch


Are we done? Almost! git branch -vva will tell you that your branches are no longer tracking their remote counterparts. If you have only a master branch, a simple git branch -u origin/master master is enough to set up tracking. If you have many branches, you will want to script this.

$(git for-each-ref --format '%(refname:short)' refs/heads) 中的头部 如果 git rev-parse -q --verify origin/$head >/dev/null 则执行 然后 git branch -u origin/$head $head fi done packed-refs


If the packed-refs file is gone, you might have lost an awful lot of refs. Try a git fetch to see if some of them come back (tags and remote refs). For local refs, see the recipe below that discusses losing the refs directory.

A folder in `.git` is gone!

Not even two weeks after the case of the missing files, a user popped into #git who had lost everything except .git/objects/ (seriously, how do people do this?!). We managed to recreate everything else, which was of course made easier because he had only a single remote and a single branch. But it just goes to show that you can lose a lot of things and still keep git happy.

In this case it is important though to recover things in the correct order. The order we used was:

HEAD refs/ HEAD 再次索引配置 refs


The refs directory contains all your branches, tags and other refs, except for the ones stored in .git/packed-refs. When you lose refs, there are a few strategies to get them back. The simplest one is to fetch from a remote repository (if you have any). This will bring back refs in refs/remotes, and tags that the remote has. When you lost all refs, you will first need to manually `mkdir -p .git/refs/heads` to get git to recognize the repository at all.

For local refs, there are two locations where you can recover the previous values of refs : the reflog and the output of fsck. If you still have your reflogs, you will find the correct value of a ref to on the last line of its reflog. Here's an example of recovering the master branch:

$尾-n1 .git/logs/refs/heads/master 54bc41416c5d3ecb978acb0df80d57aa3e54494c 2c78628255b8cc7f0b5d47981acea138db8716d2


Dennis Kaarsemaker <dennis@kaarsemaker.net> 1446765968 +0100  merge upstream/master: Fast-forward

`$ git update-ref refs/heads/master 2c78628255b8cc7f0b5d47981acea138db8716d2`
The reflog in `.git/logs/HEAD` can show you which branch you had last checked out. This can help you update the HEAD ref.

$ tail -n1 .git/logs/HEAD 7f79f6a992b11aaaf2592075346d83b1ba0f4ff8 a5e28dbe709a544f51b9c44752e14e5cd007a815 Dennis Kaarsemaker dennis@kaarsemaker.net 1448810920 +0100 checkout: moving from 7f79f6a992b11aaaf2592075346d83b1ba0f4ff8 to master $ git symbolic-ref HEAD refs/heads/master


If you do not have any reflogs, you can still recover refs by looking at your commit objects. If a commit has no descendants, it could be at the tip of a branch, so a ref should point to it. It could also be a commit that was amended, rebased or simply discarded, so this method may give you some false positives to sort through. So how do you find commits without descendants? Fortunately you don't need to do this manually, `git fsck` is here to help. Let's break a simple repository to show it.

$ git clone https://github.com/seveas/whelk.git [省略输出] $ cd whelk/ $ rm .git/packed-refs .git/refs/heads/master $ git fsck 注意:HEAD 指向未出生的分支(主)检查对象目录:100% (256/256),完成。检查对象:100% (589/589),完成。error: refs/remotes/origin/HEAD: invalid sha1 pointer 0000000000000000000000000000000000000000 notice: No default references dangling tag 92d0fe18f9a55177d955edf58048b49db7987d5b dangling commit aa7856977e80d11833e97b4151f400a516316179 dangling commit 16e449da82ec8bb51aed56c0c4c05473442db90a dangling commit 864c345397fcb3bdb902402e17148e19b3f263a8 dangling tag be9471e1263a78fd765d4c72925c0425c90d3d64


These dangling commits are the tips of the branches. But which one is which? There's no way to know without looking, so let's create some temporary branches and have a look

$ git update-ref refs/heads/recovery-1 aa7856977e80d11833e97b4151f400a516316179 $ git update-ref refs/heads/recovery-2 16e449da82ec8bb51aed56c0c4c05473442db90a $ git update-ref refs/heads/recovery-3 864c345397fcb3bdb902402e17148e19b3f263a8 $ git log --graph --all --单线——装饰


In the resulting log, you'll see where these temporary branches point, and you can use git branch -m to give them their correct names back. And those dangling tags? Those are tag objects that you can now recover, the tag object even has the tag name in it!

$ git cat-file tag be9471e1263a78fd765d4c72925c0425c90d3d64 object 34555e0e3315f60ca5810562a36269187c2ced46 type commit tag 2.5 tagger Dennis Kaarsemaker dennis@kaarsemaker.net 1428783307 +0200


Version 2.5
`$ git update-ref refs/tags/2.5 be9471e1263a78fd765d4c72925c0425c90d3d64`
logs

If the reflogs are gone, they cannot be recovered. Fortunately, these logs aren't necessary for the normal operation of git and losing them only makes recovering refs harder.

objects

If the objects directory is gone, it's time to give up. This is where your data lives, and with it gone, what's left is useless. If you still have your worktree, you can use it to start a new repository. Delete the `.git` directory and git init to start over.

If the directory is not gone completely, but you have some corrupt or missing objects, see below for tips and tricks on how to recover from this

info

The info/ directory is mostly useless these days, as it is only used for the obsolete dumb http protocol. If you still use this protocol and lost the info/ directory of the repository that is being pulled from, you can recreate it with git update-server-info.

modules

If the modules directory is gone, git can get quite upset. To fix this, move the submodules' worktrees out of the way (or delete them if you're sure you have no changes) and simply run git submodule update to reclone them. Then put your worktrees back if you had local changes, and you can commit those.

worktrees

A feature still under heavy development is support for multiple worktrees for a single repository. Information about these worktrees is stored in the worktrees directory. For each worktree, there is a separate directory containing at least HEAD, index, logs/HEAD, `gitdir` and `commondir`.

HEAD, index and logs/HEAD can be recovered as above. `gitdir` should contain the path to the `.git` file inside the separate worktree and commondir should contain the path to the original .git dir of the repository, usually ../..

Object corruption

The worst kind of corruption in a git repository is corrupt or missing objects. Corrupt objects are incredibly tricky to recover if you do not have a copy of them, so we will focus on restoring missing objects from another copy of the repository so any local-only work is not lost.

So let's first find out which objects are corrupt and remove them (you did read the first section of this article, saying to try this first in a copy of the repository, right?).

$ git fsck --full 错误:inflate:数据流错误(错误的标头检查)错误:无法解压 27c221b1620b8414de002b00aa990fd8e0d768a7 标头错误:inflate:数据流错误(错误的标头检查)致命:松散的对象 27c221b1620b8414de002b00aa990fd8e0d768/a7. 27/c221b1620b8414de002b00aa990fd8e0d768a7) is corrupt error: .git/objects/pack/pack-0672bd01813664b80248dbe8330bf52da9c02b9f.pack SHA1 checksum mismatch error: index CRC mismatch for object 66e007c864c1460986af0993698234f4442882f1 from .git/objects/pack/pack-0672bd01813664b80248dbe8330bf52da9c02b9f.pack at offset 1485 error: inflate :数据流错误(不正确的数据检查)错误:无法从 .git/objects/pack/pack-0672bd01813664b80248dbe8330bf52da9c02b9f.pack 中解压 66e007c864c1460986af0993698234f4442882f1 偏移量 1485 检查对象:100.441(4)悬空提交 fe3af8c7274267a4262bc093adcee57511e13211


This repository was intentionally broken by modifying some files with a hex editor. `git fsck` detects this and tells you which files have been tampered with. Any corrupt loose objects can simply be removed, but corrupt packfiles probably also contain some recoverable objects, so we try to recover those before removing the file.

$ mv .git/objects/pack/pack-0672bd01813664b80248dbe8330bf52da9c02b9f.pack 。$ git unpack-objects -r < pack-0672bd01813664b80248dbe8330bf52da9c02b9f.pack $ rm pack-0672bd01813664b80248dbe8330bf52da9c02b9f.pack $ rm .git/objects/27/c221b16620b8940fddea


With those files now out of the way, `git fsck` will report all missing objects. We can try recovering those from a fresh clone.

`$ git unpack-objects < ../fresh-clone/.git/objects/pack/pack-*.pack`
If there are still missing objects, you can try adding the current contents of the work directory to your repository:

`$ find -type f -print0 | xargs -0 git hash-object -w`

推荐阅读