我真的很困惑。我是一个狂热的github用户,从来没有遇到过任何问题。然而,当我检查一个我刚刚使用repo travis-ci / travis-core的fork时,无论是使用https还是ssh,我在tortisegit完成下载git repo之后但在第一次检查之前遇到了这个bug。任何可能导致这种情况的事情?谢谢你的帮助!
remote: Counting objects: 29130, done.
remote: Compressing objects: 100% (16427/16427), done.
Receiving objects: 100% (29130/29130), 8.37 MiB | 265.00 KiB/s, done.
Resolving deltas: 100% (13171/13171), done.
remote: Total 29130 (delta 13171), reused 27543 (delta 11662)
error: unable to create file spec/fixtures/github/api.github.com/orgs/travis-ci?per_page=100.json (Invalid argument)
error: unable to create file spec/fixtures/github/api.github.com/users/svenfuchs?per_page=100.json (Invalid argument)
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
答案 0 :(得分:7)
文件travis-ci?per_page=100.json
在Windows上不是有效的文件名。
您可以看到在repo中存在这样的实际文件,例如repos?per_page=9999.json
你可以在cygwin上克隆这个repo(这样的文件名在cygwin shell中是有效的),手动删除有问题的文件,或者用git filter-branch --subdirectory-filter
过滤分支,然后继续把你的fork放回去github上。
答案 1 :(得分:0)
出现此类错误的主要原因是 Windows 不支持存储库中文件的命名约定。
最简单的方法是:
cd <the-repo-name>
git config core.protectNTFS false
git pull <repo-url>