Git clone unable to create file

2019-04-22 21:37发布

问题:

Trying to clone a remote git repository (bare), I get several errors like the following, after which git stops.

error: unable to create file frozen/email/lamson/mymailserver/run/queue/mark.name/cur/1361115664.1929_1.vps-pool-55:2,S (Invalid argument)

It's okay if I have to remove these files, but I can't find a way to do that if I can't clone.

Any idea what I can do?

回答1:

I guess you're probably trying to do the clone on a Windows machine. Windows doesn't allow filenames to use the : character.

From the Microsoft documentation:

Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following:

  • The following reserved characters:
    • < (less than)
    • > (greater than)
    • : (colon)
    • " (double quote)
    • / (forward slash)
    • \ (backslash)
    • | (vertical bar or pipe)
    • ? (question mark)
    • * (asterisk)
  • Integer value zero, sometimes referred to as the ASCII NUL character.
  • Characters whose integer representations are in the range from 1 through 31, except for alternate data streams where these characters are allowed. For more information about file streams, see File Streams.
  • Any other character that the target file system does not allow.

To work around this problem, you will probably need to clone on a non-windows system and correct the offending filenames. Maybe some of the windows experts out there will have a better solution.



回答2:

I'm cross-referencing my answer, as it also applies here: https://stackoverflow.com/a/34515900/1012586

Yet instead of

*
!kickstarter/parsers/data/kickstarter/campaigndetails/*

you'd need something like

*
!frozen/email/lamson/mymailserver/run/queue/mark.name/cur/*

in your .git/info/sparse-checkout



回答3:

git will refuse to overwrite existing files. Try again, cloning into an empty directory.



标签: git git-clone