Git https:// repository not found though it exists

2019-04-28 22:18发布

问题:

I have a private repo on github. It's location was changed.

I tried changing the remote but I wasn't able to push anymore.

ls-remote https://github.com/xxxxx/xxxxx.git

gave me this

remote: Repository not found.
fatal: repository 'https://github.com/xxxxx/xxxxx.git/' not found

  • I checked the spelling and it was correct.
  • I was able to open the url in the browser
  • I have sufficient rights on the repo.
  • I could clone every other repo by https
  • I removed origin with
    git remove origin https://github.com/xxxx/xxxxx.git
  • re-added it with
    git add origin https://github.com/xxxxx/xxxxx.git
  • I did a
    git remote set-url origin https://github.com/xxxxx/xxxxx.git

I upgraded git from 1.9.5 to 2.2.1 to see if it would help

After the upgrade I did a new ls-remote on the repository and it asked to accept a new certificate. I did.

This didn't remove the problem

Doing a ls-remote on the SSH URL url though works perfectly So I fixed the problem by adding the SSH URL as remote origin

Why the https:// url is Not found keeps me puzzled. Anyone has any idea?

回答1:

I think that as it is a private repo, it appears as non-existent for anonymous access. If you use https url, it sends anonymous request, while ssh url uses your ssh credentials and private key to establish connection.

Not sure how to make it work properly with github, but try specifying a username in the url such as ls-remote https://youusername@github.com/xxxxx/xxxxx.git.

Here some clues, I believe: Is there a way to skip password typing when using https:// on GitHub?