

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Git 클라이언트 및 문제 해결 AWS CodeCommit
<a name="troubleshooting-git"></a>

다음 정보는 AWS CodeCommit 리포지토리에서 Git을 사용할 때 발생하는 일반적인 문제를 해결하는 데 도움이 됩니다. HTTPS 또는 SSH 사용 시 Git 클라이언트와 관련해 발생하는 문제를 해결하려면 [Git 보안 인증 정보(HTTPS) 문제 해결](troubleshooting-gc.md), [SSH 연결 문제 해결](troubleshooting-ssh.md), [보안 인증 도우미(HTTPS) 문제 해결](troubleshooting-ch.md) 섹션을 함께 참조하세요.

**Topics**
+ [Git 오류: RPC failed; result=56, HTTP code = 200 fatal: 원격 엔드가 예기치 않게 끊겼습니다](#troubleshooting-ge1)
+ [Git 오류: 참조 업데이트 명령이 너무 많습니다](#troubleshooting-ge2)
+ [Git 오류: 일부 Git 버전에서 HTTPS를 통한 푸시가 손상되었습니다](#troubleshooting-ge3)
+ [Git 오류: 'gnutls\$1handshake()가 실패했습니다'](#troubleshooting-ge4)
+ [Git 오류: Git이 CodeCommit 리포지토리를 찾을 수 없거나 리포지토리에 액세스할 권한이 없습니다](#troubleshooting-ge5)
+ [Windows의 Git: 지원되는 인증 방법이 없습니다 (퍼블릭키)](#troubleshooting-gw1)

## Git 오류: RPC failed; result=56, HTTP code = 200 fatal: 원격 엔드가 예기치 않게 끊겼습니다
<a name="troubleshooting-ge1"></a>

**문제:**대규모 변경 사항, 대량의 변경 사항 또는 대규모 리포지토리 푸시할 때는 장시간 실행 중인 HTTPS 연결이 네트워킹 문제나 방화벽 설정으로 인해 조기에 종료되는 경우가 많습니다.

**가능한 해결 방법:** SSH를 대신 사용하여 푸시하거나, 대규모 리포지토리를 마이그레이션하는 경우에는 [리포지토리를 증분으로 마이그레이션하기](how-to-push-large-repositories.md) 섹션의 다음 단계를 따릅니다. 또한 개별 파일의 크기 제한을 초과하지 않도록 합니다. 자세한 내용은 [할당량](limits.md) 단원을 참조하십시오.

## Git 오류: 참조 업데이트 명령이 너무 많습니다
<a name="troubleshooting-ge2"></a>

**문제:** 푸시당 최대 참조 업데이트 수는 4,000개입니다. 이 오류는 푸시에 4,000개 이상의 참조 업데이트가 포함되면 나타납니다.

**가능한 해결 방법:** `git push --all` 및 `git push --tags`를 사용하여 브랜치와 태그를 개별적으로 푸시합니다. 태그가 너무 많으면 태그를 여러 번으로 나누어 푸시합니다. 자세한 내용은 [할당량](limits.md) 단원을 참조하십시오.

## Git 오류: 일부 Git 버전에서 HTTPS를 통한 푸시가 손상되었습니다
<a name="troubleshooting-ge3"></a>

**문제:** curl을 7.41.0으로 업데이트하면서 발생하는 문제로 인해 SSPI 기반 다이제스트 인증이 실패합니다. 영향을 받는 것으로 알려진 Git 버전 중에는 1.9.5.msysgit.1이 포함되어 있습니다. Windows용 Git의 일부 버전은 [RFC 2617](https://tools.ietf.org/html/rfc2617#page-5) 및 [RFC 4559](https://tools.ietf.org/html/rfc4559#page-2)를 완전히 준수하지 않을 수 있으며, AWS CLI와 함께 포함된 Git 보안 인증 또는 보안 인증 도우미를 사용하여 HTTPS 연결에 관한 문제를 일으킬 가능성이 있습니다.

**가능한 해결 방법:** 사용 중인 Git 버전의 알려진 문제를 확인하거나, 이전 또는 이후 버전을 사용합니다. mysysgit에 대한 자세한 내용은 GitHub 포럼에서 [HTTPS를 통한 푸시가 손상되었습니다](https://github.com/msysgit/git/issues/332)를 참조하세요. Windows용 Git의 버전 문제에 대해 자세히 알아보려면 [버전 2.11.0(3)이 사용자 이름과 암호를 묻지 않습니다](https://github.com/git-for-windows/git/issues/1034)를 참조하세요.

## Git 오류: 'gnutls\$1handshake()가 실패했습니다'
<a name="troubleshooting-ge4"></a>

**문제:** Linux에서 Git을 사용하여 CodeCommit 리포지토리와 통신을 시도할 때 `error: gnutls_handshake() failed` 문구가 포함된 오류 메시지가 나타납니다.

**가능한 해결 방법:** OpenSSL에 대해 Git을 컴파일합니다. 한 가지 방안으로, Ubuntu에 질문하기 포럼에서 [HTTPS 서버에 연결 시 ‘오류: nutls\$1handshake() 실패’](http://askubuntu.com/questions/186847/error-gnutls-handshake-falied-when-connecting-to-https-servers)를 참조하세요.

또는 HTTPS 대신 SSH를 사용하여 CodeCommit 리포지토리와 통신할 수 있습니다.

## Git 오류: Git이 CodeCommit 리포지토리를 찾을 수 없거나 리포지토리에 액세스할 권한이 없습니다
<a name="troubleshooting-ge5"></a>

**문제:** 연결 문자열에 후행 슬래시가 있으면 연결 시도가 실패할 수 있습니다.

**가능한 해결 방법:** 리포지토리의 이름과 연결 문자열을 올바르게 입력했는지, 그리고 후행 슬래시가 없는지 확인합니다. 자세한 내용은 [리포지토리에 연결](how-to-connect.md) 단원을 참조하십시오.

## Windows의 Git: 지원되는 인증 방법이 없습니다 (퍼블릭키)
<a name="troubleshooting-gw1"></a>

**문제:** Windows용 SSH 액세스를 구성한 후, **git pull**, **git push**, **git clone**와 같은 명령어를 사용하려고 하면 액세스 거부 오류가 표시됩니다.

**가능한 해결 방법:** 이 오류의 가장 일반적인 원인은 GIT\$1SSH 환경 변수가 컴퓨터에 존재하고 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 연결 문제 해결](troubleshooting-ssh.md) 섹션을 참조하세요.