HTTPS クローニングエラー
Git で HTTPS を使用する際によく生じるエラーがいくつかあります。 これらのエラーは通常、古いバージョンの Git を使用しているか、もしくはリポジトリへのアクセス権を持っていないことが原因です。
HTTPS エラーの例を次に示します:
> error: The requested URL returned error: 401 while accessing
> https://hostname/user/repo.git/info/refs?service=git-receive-pack
> fatal: HTTP request failed
> Error: The requested URL returned error: 403 while accessing
> https://hostname/user/repo.git/info/refs
> fatal: HTTP request failed
> Error: https://hostname/user/repo.git/info/refs not found: did you run git
> update-server-info on the server?
使用している Git のバージョンを確認する
GitHub AE を使用するために最低限必要な Git のバージョンはありませんが、安定度の高いバージョン 1.7.10 を推奨しています。バージョン 1.7.10 は多くのプラットフォームで利用可能です。 いつでも Git の Web サイトで最新バージョンをダウンロードできます。
リモートが正しいことを確かめる
フェッチするリポジトリが your enterprise に存在する必要があります。また、URL では大文字と小文字が区別されます。
コマンドラインを開き、git remot -v
と入力して、ローカルリポジトリの URL を見つけることができます。
$ git remote -v
# 既存のリモートを表示する
> origin https://github.com/ghost/reactivecocoa.git (fetch)
> origin https://github.com/ghost/reactivecocoa.git (push)
$ git remote set-url origin https://github.com/ghost/ReactiveCocoa.git
# 'origin' リモートの URL を変更する
$ git remote -v
# 新規 URL を検証する
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
もしくは、GitHub Desktop アプリケーションから URL を変更できます。
アクセストークンを入力する
GitHub にアクセスするには、パスワードではなく個人アクセストークンで認証する必要があります。 詳しい情報については、「個人アクセストークンを作成する」を参照してください。
自分の権限を確認する
ユーザ名およびパスワードを求められた場合は、該当のリポジトリにアクセスできるアカウントを使用してください。
ヒント: リモートリポジトリを操作するときの毎回の認証情報の入力を省くには、認証情報のキャッシュをオンにします。 すでに認証情報のキャッシュを使用している場合は、コンピューターに正しい認証情報がキャッシュされていることを確認してください。 認証情報が正しくない、または古い場合、認証に失敗します。
代わりに SSH を使用する
すでに SSH キーをセットアップしている場合は、HTTPS の代わりに SSH クローン URL を使用できます。 For more information, see "About remote repositories."
Error: Repository not found
リポジトリのクローン作成時にこのエラーが表示される場合は、リポジトリが存在しないか、リポジトリにアクセスする権限がないことを示しています。 原因に応じて、このエラーに対するいくつかの解決策があります。
スペルを確認する
入力ミスは起こるものです。また、リポジトリ名は大文字と小文字を区別します。 git@<em>hostname</em>:user/repo.git
をクローンしようとしたが、リポジトリの実際の名前は User/Repo
である場合、このエラーが表示されます。
このエラーを回避するには、クローン時は常にリポジトリのページからクローン URL をコピーして貼り付けるようにします。 詳しい情報についてはリポジトリのクローンを参照してください。
To update the remote on an existing repository, see "Managing remote repositories".
権限をチェックする
プライベートリポジトリをクローンしようとしているが、リポジトリの表示権限がない場合、このエラーが表示されます。
以下のいずれかによってリポジトリへのアクセス権があることを確認してください:
SSH アクセスをチェックする
ごくまれに、リポジトリへの正しい SSH アクセス権がない場合があります。
You should ensure that the SSH key you are using is attached to your personal account on GitHub AE. 以下をコマンドラインに入力してこれをチェックできます:
$ ssh -T git@hostname
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
リポジトリが Organization に属し、OAuth App によって生成された SSH キーを使用している場合、OAuth App へのアクセスは Organization のオーナーによって制限されている可能性があります。 詳しい情報については、「OAuth App のアクセス制限について」を参照してください。
詳細は「GitHub アカウントに新しい GPG キーを追加する」を参照してください。
リポジトリが実際に存在することを確認する
すべて失敗した場合は、リポジトリが your enterprise に実際に存在していることを確認してください。 存在しないリポジトリにプッシュを試みると、このエラーが表示されます。
Error: Remote HEAD refers to nonexistent ref, unable to checkout
このエラーは、リポジトリのデフォルトブランチが your enterpriseで削除された場合に発生します。
このエラーの検出方法は簡単です。リポジトリのクローンを試みると Git により警告されます:
$ git clone https://hostname/user/repo.git
# リポジトリをクローン
> Cloning into 'repo'...
> remote: Counting objects: 66179, done.
> remote: Compressing objects: 100% (15587/15587), done.
> remote: Total 66179 (delta 46985), reused 65596 (delta 46402)
> Receiving objects: 100% (66179/66179), 51.66 MiB | 667 KiB/s, done.
> Resolving deltas: 100% (46985/46985), done.
> warning: remote HEAD refers to nonexistent ref, unable to checkout.
このエラーを解決するには、your enterprise リポジトリの管理者になる必要があります。 リポジトリのデフォルトブランチの変更が必要となります。
その後、コマンドラインで使用可能なブランチすべてのリストを取得できます:
$ git branch -a
# すべてのブランチをリスト
> remotes/origin/awesome
> remotes/origin/more-work
> remotes/origin/new-main
その後、新しいブランチにスイッチするだけです:
$ git checkout new-main
# 追跡ブランチを作成してチェックアウト
> Branch new-main set up to track remote branch new-main from origin.
> Switched to a new branch 'new-main'