Git クライアントと AWS CodeCommit のトラブルシューティング - AWS CodeCommit

Git クライアントと AWS CodeCommit のトラブルシューティング

以下の情報は、Git を AWS CodeCommit リポジトリと共に使用するときに発生する一般的な問題のトラブルシューティングに役立つ場合があります。HTTPS または SSH を使用している場合の Git クライアント関連の問題のトラブルシューティングについては、Git 認証情報 (HTTPS) のトラブルシューティングSSH 接続のトラブルシューティング認証情報ヘルパー (HTTPS) のトラブルシューティングを参照してください。

Git エラー: error: RPC failed; result=56, HTTP code = 200 fatal: リモートエンドが予期せず切断されました

問題: 大きな変更、多数の変更、大きなリポジトリのいずれかをプッシュすると、ネットワーク問題またはファイアウォール設定が原因で、長時間実行されている HTTPS 接続が切断されることがあります。

解決方法: SSH を使用してプッシュするか、大きなリポジトリに移行する場合は、リポジトリの段階的移行のステップを行います。また、個々のファイルのサイズ制限を超えていないことを確認してください。詳細については、「クォータ」を参照してください。

Git エラー: リファレンスアップデートコマンドが多すぎる

問題: 1 回のプッシュあたりの最大リファレンスアップデート数は 4,000 回です。プッシュにリファレンスアップデートが 4,001 回以上が含まれていると、このエラーが表示されます。

解決方法: git push --all および git push --tags を使用して、ブランチおよびタグのプッシュを個別にお試しください。タグが多数ある場合は、タグを複数のプッシュに分割します。詳細については、「クォータ」を参照してください。

Git エラー: Git の一部のバージョンで HTTPS 経由のプッシュが切断される

問題: curl を 7.41.0 にアップデートする際の問題が原因で、SSPI ベースのダイジェスト認証が失敗することがあります。影響のある Git の既知バージョンのひとつに、1.9.5.msysgit.1 があります。Git for Windows のバージョンによっては、「RFC 2617」および「RFC 4559」との完全な互換性がない場合があります。これにより、Git 認証情報、または AWS CLI に含まれている認証情報ヘルパーを使用する HTTPS 接続で問題が生じることがあります。

解決方法: 既知の問題の可能性についてお使いの Git バージョンを確認するか、前後のバージョンを使用します。mysysgit に関する詳細については、GitHub フォーラムの「HTTPS へのプッシュが切断される」を参照してください。Git for Windows バージョンの問題の詳細については、「バージョン 2.11.0(3) でユーザー名/パスワードの入力画面が表示されない」を参照してください。

Git エラー: 'gnutls_handshake() failed'

問題: Linux で、Git を使用して CodeCommit リポジトリ と接続しようとすると、エラーメッセージ error: gnutls_handshake() failed が表示されます。

解決方法: OpenSSL に対して Git をコンパイルします。アプローチについては、Ask Ubuntu フォーラムの「HTTPS サーバーへの接続時のエラー: gnutls_handshake() failed」を参照してください。

または、HTTPS の代わりに SSH を使用して、CodeCommit リポジトリと接続します。

Git エラー: Git で CodeCommit リポジトリを見つけることができない、またはリポジトリへのアクセス権限がない

問題: 接続文字列の末尾にスラッシュを使用すると、接続試行が失敗する原因になります。

解決方法: 正しいリポジトリ名および接続文字列が入力されていること、末尾にスラッシュがないことを確認します。詳細については、「リポジトリへの接続」を参照してください。

Windows 上の Git: 利用できる認証メソッド (パブリックキー) がサポートされていない

問題: Windows 向けに SSH アクセスを設定後、git pullgit push、または git clone などのコマンドの使用を試みると、アクセス拒否エラーが表示されます。

解決方法: このエラーの最も一般的な原因は、GIT SSH 環境変数がコンピュータに存在しており、PuTTY などの別の接続ユーティリティをサポートするように設定されていることです。この問題を解決するには、以下のいずれかをお試しください。

  • Bash エミュレーターを開き、GIT_SSH_COMMAND="ssh" パラメータを追加してから、Git コマンドを使用します。たとえば、リポジトリのクローンを作成する場合は、git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo ではなく、次を実行します。

    GIT_SSH_COMMAND="ssh" git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
  • 今後使用しない GIT_SSH 環境変数の名前を変更するか、削除します。次に、新しいコマンドプロンプト、または Bash エミュレーターセッションを開き、コマンドを再度実行してみてください。

SSH を使用しているときに Windows で Git の問題をトラブルシューティングする方法の詳細については、「SSH 接続のトラブルシューティング」を参照してください。