рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЬреАрдЖрдИрдЯреА рд░реЗрдкреЛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕реЗ (рдХрд╛рдо рдХрд┐рдпрд╛) рдФрд░ рдлрд┐рд░ рдХреНрд▓реЛрдирд┐рдВрдЧ (рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░) рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
$> git clone [email protected]:sinatra/sinatra.git
Cloning into 'sinatra'...
remote: Counting objects: 19910, done.
error: object 218b8c8019a785b8c08c1dd64beff68af63cc1f9: zeroPaddedFilemode: contains zero-padded file modes
fatal: Error in object
fatal: index-pack failed
рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
devbox@ubuntu-server-xenial:~/code$ git --version
git version 2.7.4
devbox@ubuntu-server-xenial:~/code$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
devbox@ubuntu-server-xenial:~/code$ git clone [email protected]:sinatra/sinatra.git
Cloning into 'sinatra'...
Host key fingerprint is SHA256:n6E5SYUpJ7E1IGOCspRoThXkTxdCKGlwmARLviWbg68
+---[RSA 2048]----+
| =+o...+=o.. |
|o++... *o . |
|*.o. *o. |
|oo. ..o.= . |
|.+o. .. S = |
|*=+ . o = . |
|OE . . o |
| o . |
| |
+----[SHA256]-----+
remote: Counting objects: 19910, done.
remote: Total 19910 (delta 0), reused 0 (delta 0), pack-reused 19910
Receiving objects: 100% (19910/19910), 5.92 MiB | 0 bytes/s, done.
Resolving deltas: 100% (10750/10750), done.
Checking connectivity... done.
devbox@ubuntu-server-xenial:~/code$
рдЖрдк git
рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
MacOS рд╕рд┐рдПрд░рд╛ рдкрд░ git version 2.13.0
(рдмрд╕ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА, рдЕрднреА рднреА рд╡рд╣реА рдореБрджреНрджрд╛)
рдореЗрд░реЗ .gitconfig
рдореЗрд░реА рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ:
[transfer]
fsckobjects = true
рдЬрдм рдореИрдВ рдЗрд╕реЗ false
рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рдж git fsck
рдкреИрджрд╛рд╡рд╛рд░ рдЪрд▓ рд░рд╣реА рд╣реИ:
$> git fsck
Checking object directories: 100% (256/256), done.
warning in tree 218b8c8019a785b8c08c1dd64beff68af63cc1f9: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 496479ab009c76d3d5e5b5eb8f05e478555b730a: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 6720ac897243912cf384731c42a6ed4005bc384c: zeroPaddedFilemode: contains zero-padded file modes
Checking objects: 100% (19910/19910), done.
рдпрджрд┐ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдВрдХреЗрдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
https://git.wiki.kernel.org/index.php/GitFaq#How_to_fix_a_broken_repository.3F
рд╣рд╛рдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдЙрддрдирд╛ рд╣реА рднреНрд░рд╖реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред рдХреНрдпреЛрдВ git
fsckobjects
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реИ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ ...
fsck рдореЗрд░реА рдЬрд╛рди
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ https://github.com/sinatra/sinatra/issues/532 (2012) рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдерд╛ред
рдореИрдВ рдЗрд╕ StackOverflow рдЬрд╡рд╛рдм рдореЗрдВ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд░реЗрдкреЛ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯреВрдЯреЗ SHAs рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╣реИрдВред
рдореБрдЭреЗ SHA рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЯреИрдЧреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред
рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ: https://github.com/rohitpaulk/sinatra-gitfsck
рдореИрдВрдиреЗ рдЬреЛ рдХрджрдо рдЙрдард╛рдП, рд╡реЗ рдереЗ:
git init
рдЪрд▓рд╛рдПрдВgit fast-export --all --signed-tags=warn-strip | (cd ../new-sinatra && git fast-import)
рдЬрдВрдЧрд▓реА рдореЗрдВ рдЗрд╕рдХреЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг:
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рдЧреНрд░рд┐рдЯ рдореЗрдВ рд╣реИ , рдЬреЛ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
fsck рдореЗрд░реА рдЬрд╛рди