When cloning git repo under Windows I get "error: unable to create file <file>... (Is a directory)" - windows

Z:\>git clone git://github.com/kennethreitz/httpbin.git
Cloning into 'httpbin'...
remote: Counting objects: 1073, done.
remote: Compressing objects: 100% (401/401), done.
remote: Total 1073 (delta 672), reused 1045 (delta 651)
Receiving objects: 100% (1073/1073), 114.42 KiB | 128 KiB/s, done.
Resolving deltas: 100% (672/672), done.
error: unable to create file httpbin/templates/... (Is a directory)
git version 1.8.0.msysgit.0, Windows Vista SP2 x64
What's wrong?

I think the trouble is this file here in you repo: https://github.com/kennethreitz/httpbin/blob/master/httpbin/templates/...
... is not a valid filename under windows
In order to get the repo, clone without checking out files (with -n flag):
git clone -n git://repo
Then you could use a sparse-checkout to get all file but ..., or you could only git checkout file you actually need.

Related

Restore all files except one folder

I've cloned this repo, but two of the files have an asterisk * in their names which is a disallowed character for Windows filenames. This means the repo clones but fails to checkout. Cloning looks like this:
> git clone https://github.com/mallowigi/iconGenerator.git
Cloning into 'iconGenerator'...
remote: Enumerating objects: 2592, done.
remote: Counting objects: 100% (2592/2592), done.
remote: Compressing objects: 100% (1545/1545), done.
remote: Total 2592 (delta 1232), reused 2383 (delta 1037), pack-reused 0R
Receiving objects: 100% (2592/2592), 14.87 MiB | 7.26 MiB/s, done.
Resolving deltas: 100% (1232/1232), done.
# hits error here
error: invalid path 'examples/files/*.pyc'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
When I try git restore --source=HEAD . I get this error:
> git restore --source=HEAD .
error: invalid path 'examples/files/*.pyc'
error: invalid path 'examples/files/*.pyo'
I could go through manually and restore all the folders except examples/files/, but my question is: Is there a way to do this with one command? Maybe something like:
> git restore --source=HEAD . --except=/examples/files/*
As per evolutionxbox's comment the solution was just to do
git checkout HEAD -- .
This de-stages the deletion of all the other files and leaves a git status of:
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: examples/files/*.pyc
deleted: examples/files/*.pyo

Git Clone: Clone succeeded, but checkout failed

I was cloning my repository in Windows: https://github.com/garvit-joshi/Competitive-Programming
Cloning into 'Competitive-Programming'...
remote: Enumerating objects: 124, done.
remote: Counting objects: 100% (124/124), done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 399 (delta 53), reused 35 (delta 10), pack-reused 275
Receiving objects: 100% (399/399), 130.31 KiB | 357.00 KiB/s, done.
Resolving deltas: 100% (174/174), done.
error: invalid path 'HackerRank/A: Left Rotation.cpp'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
I have tried renaming the file in GitHub and then cloning the repo but No Success.

Git doesn't connect from git bash but works in cmd.exe - 503 from proxy after CONNECT

When I try to connect from git bash I got:
$ /mingw64/bin/git fetch
fatal: unable to access 'https://example.com/repo.git/': Received HTTP code 503 from proxy after CONNECT
$ /mingw64/bin/git version
git version 2.8.1.windows.1
Works with cmd.exe:
"C:\Program Files\Git\mingw64\bin\git.exe" fetch
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 13 (delta 5), reused 9 (delta 1)
Unpacking objects: 100% (13/13), done.
"C:\Program Files\Git\mingw64\bin\git.exe" version
git version 2.8.1.windows.1
It also works when I use git version from github for windows:
$ ~/AppData/Local/GitHub/PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0/cmd/git fetch
remote: Counting objects: 25, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 13 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (13/13), done.
$ ~/AppData/Local/GitHub/PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0/cmd/git version
git version 2.7.4.windows.1
I've created issue on github https://github.com/git-for-windows/git/issues/732
Likely you have http_proxy environment variable set while you connect from within bash, and don't have it set or have it set to a different value while running the command from cmd. Check both environments with set command

can't access github via https after upgrade to Yosemite

I can't access GitHub via https after upgrade my Mac to Yosemite.
fatal: unable to access 'https://github.com/caskroom/homebrew-cask/': SSL: can't load CA certificate file
Actually,it's brew update,most of brew operations are via https when requesting github repo.
Using git version 2.1.2 (on Yosemite) I'm able to download the repo just fine:
git clone https://github.com/mitsuhiko/flask.git/
Cloning into 'flask'...
remote: Counting objects: 10113, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 10113 (delta 2), reused 5 (delta 1)
Receiving objects: 100% (10113/10113), 4.66 MiB | 1.52 MiB/s, done.
Resolving deltas: 100% (6112/6112), done.
Checking connectivity... done.
You can try switching to ssh:
git clone git#github.com:mitsuhiko/flask.git
With https, you need to have your CAs (Certificate Authorities) in order (as in this question).

Git (Windows) - cannot create file on clone. Works as Superuser

I'm using Windows 8, 64bit - I recently installed Git to use it on this computer. However, it is not possible to clone any repository. It exits with the message:
$ git clone ssh://me#some.address.com/some/git/repository.git
Cloning into 'repository'...
error: Unable to create c:/Users/Danyel/workspace/repository/.git/HEAD
When I open cmd as Administrator and try the same command, it succeeds (cmd as normal user fails just like with Git Bash):
C:\Users\Danyel\workspace>git clone ssh://me#some.address.com/some/git/repository.git
Cloning into 'repository'...
remote: Counting objects: 221, done.
remote: Compressing objects: 100% (195/195), done.
remote: Total 221 (delta 34), reused 167 (delta 15)
Receiving objects: 100% (221/221), 9.23 MiB | 1.38 MiB/s, done.
Resolving deltas: 100% (34/34), done.
Checking connectivity... done
I'm using this version of Git: Git-1.8.4-preview20130916
Any help or clues are welcome! I have checked for the permissions and have ownership in parent folders ("repository", ".git"). What else can it be??
Edit:
The GIT_TRACE option did not give any clue about it either:
$ GIT_TRACE=2 git clone ssh://me#some.address.com/some/git/repository.git
trace: built-in: git 'clone' 'ssh://me#some.address.com/some/git/repository.git'
Cloning into 'repository'...
error: Unable to create c:/Users/Danyel/Desktop/repository/.git/HEAD
As illustrated in this thread, that kind of error message only happens when one of the parent folders is a symlink.
Check if you can clone it in another path (C:\ or C:/Users/Danyel).
But I suspect that Desktop\workspace is a symlink, and as such, not very compatible with a cloned repo path (because that would un-symlink that path, which might not be compatible with other apps/process using that same path).
The only other instance of that issue is related to a path-length limit.

Resources