

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

# 시작하기
<a name="getting-started-topnode"></a>

CodeCommit을 시작하는 가장 쉬운 방법은 [CodeCommit 시작하기 ](getting-started-cc.md)에 제시된 단계를 따르는 것입니다. Git과 CodeCommit을 처음 접하는 경우에는 [Git 및 CodeCommit 시작하기](getting-started.md)에 제시된 단계도 수행하는 것이 좋습니다. 각 단계를 모두 완료하면 CodeCommit에 익숙해질 수 있으며 CodeCommit 리포지토리와 상호 작용할 때 Git을 사용하기 위한 기본 사항들을 익힐 수 있습니다.

또 [CodePipeline과 CodeCommit으로 하는 간단한 파이프라인 연습](https://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-cc.html)의 자습서를 따라하면, CodeCommit 리포지토리를 지속적인 전달 파이프라인의 일부로 사용하는 방법에 대해 배울 수 있습니다.

이 단원의 자습서는 다음과 같은 [필수 구성 요소 및 설정](setting-up.md)을 완료했다는 가정 하에 작성되었습니다.
+ IAM 사용자에게 권한 할당
+ 이 자습서에 사용하는 로컬 시스템에 HTTPS 또는 SSH 연결을 위한 자격 증명 관리 설정
+ 리포지토리 생성을 포함한 모든 작업에 명령줄 또는 터미널을 사용하려는 AWS CLI 경우를 구성합니다.

**Topics**
+ [시작하기 AWS CodeCommit](getting-started-cc.md)
+ [Git 및 시작하기 AWS CodeCommit](getting-started.md)

# 시작하기 AWS CodeCommit
<a name="getting-started-cc"></a>

본 자습서는 CodeCommit의 몇 가지 주요 기능에 대한 사용 방법을 소개합니다. 먼저 리포지토리를 생성하고 몇 가지 변경 사항을 커밋합니다. 그런 다음 파일을 검색하고 해당 변경 사항을 확인합니다. 다른 사용자에게 코드 변경 내용을 검토하고 의견을 제시할 수 있게 풀 요청을 생성할 수도 있습니다.

기존 코드를 CodeCommit으로 마이그레이션하려면 [AWS CodeCommit으로 마이그레이션](how-to-migrate-repository.md) 단원을 참조하세요.

Git에 익숙하지 않다면 [Git 및 CodeCommit 시작하기](getting-started.md) 섹션도 완료하는 것이 좋습니다. 이 자습서를 완료한 후 충분한 연습을 거치면 CodeCommit을 자체 프로젝트 및 팀 환경에서 사용할 수 있습니다.

CodeCommit 콘솔은 촉소 가능한 패널에 유용한 정보를 담고 있습니다. 이 패널은 해당 페이지의 정보 아이콘(![\[The information icon that opens and closes the help panel on a page.\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-info-icon.png))이나 **정보** 링크를 통해 열 수 있습니다. 사용자는 이 패널을 언제든 닫을 수 있습니다.

![\[콘솔에서 추가 지침 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-guidance-open.png)


CodeCommit 콘솔에서는 리포지토리, 구축 프로젝트, 배포 애플리케이션, 파이프라인과 같은 리소스를 신속하게 검색할 수도 있습니다. **리소스로 이동**을 선택하거나 `/` 키를 누른 후 리소스 이름을 입력하세요. 목록에 일치 항목이 나타납니다. 검색은 대/소문자를 구분하지 않습니다. 보기 권한이 있는 리소스만 표시됩니다. 자세한 내용은 [콘솔에서 리소스 보기](auth-and-access-control-iam-identity-based-access-control.md#console-resources) 섹션을 참조하세요.

## 사전 조건
<a name="getting-started-cc-prereqs"></a>

시작에 앞서 다음과 같은 [사전 조건 및 설정](setting-up.md) 절차를 완료합니다.
+ IAM 사용자에게 권한 할당
+ 본 자습서에 사용되는 로컬 시스템에서 HTTPS 또는 SSH 접속에 필요한 보안 인증 정보 관리 설정하기.
+ 리포지토리 생성을 포함한 모든 작업에 명령줄 또는 터미널을 사용하려는 AWS CLI 경우를 구성합니다.

**Topics**
+ [사전 조건](#getting-started-cc-prereqs)
+ [1단계: CodeCommit 리포지토리 생성](#getting-started-cc-create-repo)
+ [2단계: 리포지토리에 파일 추가](#getting-started-cc-add)
+ [3단계: 리포지토리의 콘텐츠 검색](#getting-started-cc-browse)
+ [4단계: 풀 요청 생성 및 협업](#getting-started-cc-pullrequest)
+ [5단계: 정리](#getting-started-cc-clean-up)
+ [6단계: 다음 단계](#getting-started-cc-next)

## 1단계: CodeCommit 리포지토리 생성
<a name="getting-started-cc-create-repo"></a>

CodeCommit 콘솔을 사용하여 CodeCommit 리포지토리를 만들 수 있습니다. 본 자습서에 활용활 리포지토리를 이미 보유하고 있으면 이 단계를 건너뛰어도 됩니다.

**참고**  
사용자는 사용량에 따라 리포지토리 생성 또는 액세스에 대한 비용이 부과될 수 있습니다. 자세한 내용은 CodeCommit 제품 정보 페이지에서 [요금](https://aws.amazon.com/codecommit/pricing)을 참조하세요.

**CodeCommit 리포지토리를 생성하려면**

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home)에서 CodeCommit 콘솔을 엽니다.

1. 리전 선택기를 사용하여 리포지토리를 생성할 AWS 리전 를 선택합니다. 자세한 내용은 [리전 및 Git 연결 엔드포인트](regions.md) 단원을 참조하십시오.

1. **리포지토리** 페이지에서 **리포지토리 생성**을 선택합니다.

1. **리포지토리 생성** 페이지에서 **리포지토리 이름**에 해당 리포지토리의 이름(예: **MyDemoRepo**)을 입력합니다.
**참고**  
리포지토리 이름은 대/소문자를 구분하며 100자를 초과할 수 없습니다. 자세한 내용은 [제한](limits.md#limits-repository-names)을 참조하세요.

1. (선택 사항) **설명** 란에 설명 내용을 입력합니다(예: **My demonstration repository**). 그러면 사용자들이 리포지토리의 용도를 식별하는 데 도움이 됩니다.

1. (선택 사항) **태그 추가**를 선택하여 하나 이상의 리포지토리 태그( AWS 리소스를 구성하고 관리하는 데 도움이 되는 사용자 지정 속성 레이블)를 리포지토리에 추가합니다. 자세한 내용은 [에서 리포지토리 태그 지정 AWS CodeCommit](how-to-tag-repository.md) 단원을 참조하십시오.

1. (선택 사항) **추가 구성을** 확장하여이 리포지토리의 데이터를 암호화하고 해독하기 위해 기본 AWS 관리형 키 또는 자체 고객 관리형 키를 사용할지 여부를 지정합니다. 자체 고객 관리형 키를 사용하기로 선택한 경우 리포지토리를 생성하는 AWS 리전 에서 사용할 수 있고 키가 활성 상태인지 확인해야 합니다. 자세한 내용은 [AWS Key Management Service 및 AWS CodeCommit 리포지토리 암호화](encryption.md) 단원을 참조하십시오.

1. (선택 사항) 이 리포지토리에 Java나 Python 코드가 포함될 예정이고 해당 코드를 CodeGuru Reviewer로 분석하고 싶다면, **Java 또는 Python용 Amazon CodeGuru Reviewer 활성화**를 선택합니다. CodeGuru Reviewer는 다양한 기계 학습 모델을 사용하여 코드의 결함을 찾아내고 풀 요청의 개선점과 해결책을 자동으로 제안합니다. 자세한 내용은 Amazon CodeGuru Reviewer 사용 설명서를 참조하세요.

1. **생성(Create)**을 선택합니다.

![\[콘솔에서 리포지토리 생성\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-create-repository.png)


**참고**  
해당 리포지토리에 `MyDemoRepo`이 아닌 다른 이름을 사용하는 경우, 나머지 단계에서 그 이름을 사용해야 합니다.

리포지토리가 열리면 CodeCommit 콘솔에서 직접 파일을 추가하는 방법에 대한 내용이 표시됩니다.

## 2단계: 리포지토리에 파일 추가
<a name="getting-started-cc-add"></a>

리포지토리에 파일을 추가하려면 다음을 수행해야 합니다.
+ CodeCommit 콘솔에서 파일 생성하기. 콘솔에서 임의의 리포지토리에 파일을 처음으로 생성하면 main이라는 브랜치가 자동으로 생성됩니다. ** 이 브랜치는 해당 리포지토리의 기본 브랜치입니다.
+ CodeCommit 콘솔을 사용하여 로컬 컴퓨터에서 파일을 업로드하기. 콘솔에서 리포지토리에 파일을 처음으로 업로드하면 main이라는 브랜치가 자동으로 생성됩니다. ** 이 브랜치는 해당 리포지토리의 기본 브랜치입니다.
+ Git 클라이언트를 사용하여 로컬 컴퓨터로 리포지토리를 복제한 다음, CodeCommit 리포지토리에 파일을 추가, 커밋, 푸시합니다. Git에서 처음 커밋할 때는 브랜치가 자동으로 생성되며 이 브랜치가 리포지토리의 기본 브랜치로 설정됩니다. 브랜치 이름은 Git 클라이언트의 기본 설정에 따라 결정됩니다. 첫 브랜치의 이름으로 main을 사용하도록 Git 클라이언트 구성합니다. ** 

**참고**  
사용자는 언제든 브랜치를 생성하고 리포지토리의 기본 브랜치를 변경할 수 있습니다. 자세한 내용은 [AWS CodeCommit 리포지토리의 브랜치 작업](branches.md) 단원을 참조하세요.

가장 간단한 시작 방법은 CodeCommit 콘솔을 열고 파일을 추가하는 것입니다. 이렇게 하면 리포지토리에 main이라는 기본 브랜치도 생성됩니다. ** 를 사용하여 리포지토리에 파일을 추가하고 첫 번째 커밋을 생성하는 방법에 대한 지침은를 사용하여 리포지토리에 대한 첫 번째 커밋 생성을 AWS CLI참조하세요. [AWS CLI](how-to-create-commit.md#create-first-commit) 

**리포지토리에 파일을 추가하려면**

1. 해당 리포지토리의 탐색 모음에서 **코드**를 선택합니다.

1. **파일 추가**를 선택한 다음, 컴퓨터에서 파일 생성 또는 파일을 업로드를 선택합니다. 이 자습서에서는 두 작업을 수행하는 방법을 모두 보여 줍니다.

1. 파일을 추가하려면 다음을 수행합니다.

   1. 브랜치 드롭다운 목록에서 파일을 추가할 브랜치를 선택합니다. 기본 브랜치가 자동으로 선택됩니다. 여기서 소개하는 예제에서는 기본 브랜치의 명칭이 main으로 지정됩니다. ** 파일을 다른 브랜치에 추가하려면 다른 브랜치를 선택합니다.

   1.  **파일 이름**에 파일의 이름을 입력합니다. 코드 편집기에서 파일의 코드를 입력합니다.

   1. **작성자 이름**에 다른 리포지토리 사용자에게 표시할 이름을 입력합니다.

   1. **이메일 주소**에 이메일 주소를 입력합니다.

   1. (선택 사항) **커밋 메시지**에 간단한 메시지를 입력합니다. 이것은 선택 사항이지만 이 파일을 추가한 이유를 팀원들이 이해하는 데 도움이 되므로 커밋 메시지를 추가하는 것이 좋습니다. 커밋 메시지를 입력하지 않으면 기본 메시지가 사용됩니다.

   1. **변경 사항 커밋**을 선택합니다.

   파일을 업로드하려면 다음을 수행합니다.
   + 파일을 업로드하려는 경우에는 업로드할 파일을 선택합니다.  
![\[CodeCommit 콘솔에서 파일 업로드 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-commit-first-file.png)
   + **작성자 이름**에 다른 리포지토리 사용자에게 표시할 이름을 입력합니다.
   + **이메일 주소**에 이메일 주소를 입력합니다.
   + (선택 사항) **커밋 메시지**에 간단한 메시지를 입력합니다. 이것은 선택 사항이지만 이 파일을 추가한 이유를 팀원들이 이해하는 데 도움이 되므로 커밋 메시지를 추가하는 것이 좋습니다. 커밋 메시지를 입력하지 않으면 기본 메시지가 사용됩니다.
   + **변경 사항 커밋**을 선택합니다.

자세한 내용은 [AWS CodeCommit 리포지토리에서 파일 작업하기](files.md) 단원을 참조하십시오.

Git 클라이언트를 사용해 리포지토리를 복제하려면, 로컬 컴퓨터에 Git을 설치한 다음 CodeCommit 리포지토리를 복제합니다. 다음으로 로컬 리포지토리에 파일을 몇 개 추가하고 그 파일들을 CodeCommit 리포지토리로 푸시합니다. 자세한 설명은 [Git 및 CodeCommit 시작하기](getting-started.md) 섹션을 참조하세요. Git에는 익숙하지만 CodeCommit 리포지토리에서 이 작업을 수행하는 방법을 잘 모르는 경우에는 [커밋 생성](how-to-create-commit.md), [2단계: 로컬 리포지토리 생성](getting-started.md#getting-started-set-up-folders), [리포지토리에 연결](how-to-connect.md) 섹션에서 예제와 지침을 참조할 수 있습니다.

CodeCommit 리포지토리에 파일을 추가했으면 콘솔에서 해당 파일을 볼 수 있습니다.

## 3단계: 리포지토리의 콘텐츠 검색
<a name="getting-started-cc-browse"></a>

사용자는 CodeCommit 콘솔을 사용하여 리포지토리의 파일을 검토하거나 파일의 콘텐츠를 빠르게 훑어볼 수 있습니다. 이렇게 하면 체크아웃할 브랜치를 결정하거나 리포지토리의 로컬 복사본 생성 여부를 결정하는 데 도움이 됩니다.

**리포지토리를 검색하려면**

1. **리포지토리**에서 MyDemorepo를 선택합니다.

1. 이 페이지에는 리포지토리의 기본 브랜치에 있는 콘텐츠가 표시됩니다. 다른 브랜치를 보거나 특정 태그의 코드를 보려면 목록에서 보려는 브랜치 또는 태그를 선택합니다. 다음 스크린샷에서 보기는 main 브랜치로 설정되어 있습니다. ****   
![\[리포지토리 콘텐츠 검색\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-code-browse.png)

1. 자신의 리포지토리에 있는 파일의 콘텐츠를 보려면 목록에서 해당 파일을 선택합니다. 표시된 코드의 색상을 변경하려면 설정 아이콘을 선택합니다.  
![\[파일의 콘텐츠 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-code-browse-file.png)

   자세한 내용은 [리포지토리에서 파일 검색](how-to-browse.md) 단원을 참조하십시오.

1. 리포지토리의 커밋 이력을 검색하려면 **커밋**을 선택합니다. 콘솔은 기본 브랜치의 커밋 이력을 시간 역순으로 표시합니다. 작성자, 날짜 등을 기준으로 커밋 세부 정보를 검토합니다.  
![\[콘솔에서 커밋 이력 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-code-history.png)

1. [브랜치](branches.md) 또는 [Git 태그](how-to-view-tag-details.md)별로 커밋 이력을 보려면 목록에서 보려는 브랜치 또는 태그를 선택합니다.

1. 커밋과 그 부모 커밋 간 차이를 보려면 축약된 커밋 ID를 선택하십시오. 공백 변경 사항 표시 여부와 변경을 인라인으로 표시할지(**Unified** 보기) 아니면 나란히 표시할지(**Split** 보기) 여부 등 변경 내용의 표시 방식을 선택할 수 있습니다.
**참고**  
코드 및 다른 콘솔 설정 보기에 대한 기본 설정은 변경이 생길 때마다 브라우저 쿠키로 저장됩니다. 자세한 내용은 [사용자 기본 설정으로 작업](user-preferences.md) 단원을 참조하십시오.  
![\[통합 보기에 표시된 변경 사항 (공백 변경 사항 확인 가능)\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-commit-changes2c.png)

1. 커밋에 대한 모든 주석을 보려면 해당 커밋을 선택한 후 변경 내용을 스크롤하여 인라인으로 표시합니다. 자신의 주석을 추가하고 다른 사람의 주석에 답변할 수도 있습니다.

   자세한 내용은 [커밋에 대한 주석 추가](how-to-commit-comment.md) 단원을 참조하십시오.

1. 탐색 창에서 태그, 브랜치, 커밋 ID 등 두 커밋 지정자 간의 차이를 보려면 **커밋**​을 선택한 다음 **커밋 비교**를 선택합니다.  
![\[분할 보기에서 커밋을 브랜치의 말단과 비교\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-compare-4.png)

   자세한 정보는 [리포지토리의 커밋 이력 검색](how-to-view-commit-details.md#how-to-view-commit-details-console-history) 및 [커밋 비교](how-to-compare-commits.md) 섹션을 참조하세요.

1. **커밋**에서 **커밋 시각화 도우미** 탭을 선택합니다.  
![\[콘솔에서 리포지토리를 그래프 형태로 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-cv-complex1.png)

   그래프의 각 시점 옆에 커밋의 제목이 있는 커밋 그래프가 표시됩니다. 제목 표시는 80자로 제한됩니다.

1. 커밋에 대한 자세한 내용을 보려면 축약된 커밋 ID를 선택합니다. 특정 커밋에서 그래프를 렌더링하려면 그래프에서 해당 점을 선택합니다. 자세한 내용은 [리포지토리의 커밋 이력을 그래프 형태로 보기](how-to-view-commit-details.md#how-to-view-commit-details-console-visualizer) 단원을 참조하십시오.

## 4단계: 풀 요청 생성 및 협업
<a name="getting-started-cc-pullrequest"></a>

리포지토리에서 다른 사용자와 함께 작업할 때 코드를 공동 작업하고 변경 내용을 검토할 수 있습니다. 다른 사용자가 브랜치의 코드 변경 사항을 검토하고 의견을 제시할 수 있도록 풀 요청을 생성할 수 있습니다. 풀 요청에 대해 하나 이상의 승인 규칙을 생성할 수도 있습니다. 예를 들어 두 명 이상의 다른 사용자가 풀 요청을 승인해야 병합할 수 있는 승인 규칙을 생성할 수 있습니다. 풀 요청이 승인되면 해당 변경 내용을 대상 브랜치에 병합할 수 있습니다. 리포지토리에 대한 알림을 설정하면, 리포지토리 사용자는 리포지토리 이벤트(예: 풀 요청 또는누군가가 코드에 주석을 다는 경우)에 대한 이메일을 받을 수 있습니다. 자세한 내용은 [AWS CodeCommit 리포지토리의 이벤트에 대한 알림 구성](how-to-repository-email.md) 단원을 참조하십시오.

**중요**  
풀 요청을 생성하려면 먼저 검토할 코드 변경 내용을 포함하는 브랜치를 생성해야 합니다. 자세한 내용은 [브랜치 생성](how-to-create-branch.md) 단원을 참조하십시오.

**풀 요청을 생성하고 공동 작업하려면**

1. 탐색 창에서 **풀 요청**을 선택합니다.

1. **풀 요청**에서 **풀 요청 생성**을 선택합니다.
**작은 정보**  
또한 **브랜치** 및 **코드**에서 풀 요청을 생성할 수도 있습니다.

   **풀 요청 생성**의 **소스**에서, 검토하려는 변경 사항이 포함된 브랜치를 선택합니다. **대상 주소**에서, 풀 요청이 닫힐 때 검토한 코드를 병합할 브랜치를 선택합니다. **비교**를 선택합니다.

1. 병합 세부 정보와 변경 내용을 검토하여 풀 요청에 검토를 요청할 변경 내용과 커밋이 포함되어 있는지 확인합니다. 모두 포함되었으면 **제목**에서 이 검토 항목의 제목을 지정합니다. 이 제목은 리포지토리의 풀 요청 목록에 표시되는 제목입니다. **설명**에 이 검토 사항에 대한 세부 정보와 검토자에 대한 기타 유용한 정보를 입력합니다. **생성(Create)**을 선택합니다.  
![\[풀 요청 생성\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

1. 풀 요청이 리포지토리의 풀 요청 목록에 나타납니다. 보기를 필터링하여 열린 요청, 닫힌 요청, 본인이 생성한 요청 등만 표시할 수 있습니다.  
![\[리포지토리의 풀 요청 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. 풀 요청을 병합하기 전에 특정 조건이 충족되도록 풀 요청에 승인 규칙을 추가할 수 있습니다. 풀 요청에 승인 규칙을 추가하려면 목록에서 풀 요청을 선택합니다. **승인** 탭에서 **승인 규칙 생성**을 선택합니다.

1. **규칙 이름**에서 규칙에 설명이 포함된 이름을 지정합니다. 예를 들어 풀 요청을 병합하기 전에 두 사람이 승인하도록 요구하려면 규칙 이름으로 **Require two approvals before merge**를 지정할 수 있습니다. **필요한 승인 수**에 원하는 숫자 **2**를 입력합니다. 기본값은 1입니다. **제출**을 선택합니다. 승인 규칙 및 승인 풀 멤버에 대한 자세한 내용은 [풀 요청에 대한 승인 규칙 생성](how-to-create-pull-request-approval-rule.md) 단원을 참조하세요.  
![\[풀 요청에 대한 승인 규칙 생성\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. 리포지토리에 대한 알림을 구성했고 풀 요청 이벤트를 사용자에게 알리기로 한 경우에는 새 풀 요청에 대한 이메일이 사용자에게 발송됩니다. 사용자는 변경 내용을 살펴보고 특정 코드 행, 파일, 풀 요청 자체 등에 대해 주석을 남길 수 있습니다. 주석에 텍스트와 이모티콘으로 댓글을 다는 것도 가능합니다. 필요할 경우, 변경 내용을 풀 요청 브랜치로 푸시할 수 있습니다. 이렇게 하면 풀 요청이 업데이트됩니다.  
![\[풀 요청에 대한 설명에 이모티콘 반응 추가.\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

1. 요청에서 변경한 내용이 만족스러우면 **승인**을 선택합니다. 해당 풀 요청에 대해 승인 규칙이 구성되어 있지 않은 경우에도 풀 요청을 승인하도록 선택할 수 있습니다. 그러면 풀 요청을 검토한 결과와 변경 내용에 대한 승인이 명확하게 기록될 수 있습니다. 생각이 바뀔 경우 승인을 취소하도록 선택할 수도 있습니다.  
![\[풀 요청에 대한 승인 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-pull-request-approvals.png)
**참고**  
풀 요청을 생성한 사용자는 풀 요청을 승인할 수 없습니다.

1. 풀 요청에서 모든 코드 변경 내용을 검토하고 동의했다면 다음 중 하나를 수행합니다.
   + 브랜치를 병합하지 않고 풀 요청을 닫으려면 **풀 요청 닫기**를 선택합니다.
   + 브랜치를 병합하고 풀 요청을 종료하려면 **병합**을 선택합니다. 코드에 사용 가능한 병합 전략 중에서 선택할 수 있습니다. 병합 전략은 소스 브랜치와 대상 브랜치 간 차이 및 병합이 완료된 후 소스 브랜치를 자동으로 삭제할지 여부에 따라 달라집니다. 선택한 후 **풀 요청 병합**을 선택하여 병합을 완료합니다.  
![\[CodeCommit 콘솔 내 병합에 사용 가능한 병합 전략을 보여주는 풀 요청.\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + 브랜치에서 자동으로 해결할 수 없는 병합 충돌이 발생한 경우, CodeCommit 콘솔에서 이러한 충돌을 해결하거나 로컬 Git 클라이언트를 사용하여 브랜치를 병합한 다음 병합을 푸시할 수 있습니다. 자세한 내용은 [AWS CodeCommit 리포지토리에서 풀 요청의 충돌 해결](how-to-resolve-conflict-pull-request.md) 단원을 참조하십시오.
**참고**  
언제라도 로컬 리포지토리에서 **git merge** 명령을 사용하고 변경 내용을 푸시하여 브랜치(풀 요청 브랜치 포함)를 수동으로 병합할 수 있습니다.

자세한 내용은 [풀 요청 작업](pull-requests.md) 및 [승인 규칙 템플릿 작업](approval-rule-templates.md) 섹션을 참조하세요.

## 5단계: 정리
<a name="getting-started-cc-clean-up"></a>

CodeCommit 리포지토리가 더 이상 필요하지 않을 경우에는 스토리지 공간에 대한 비용이 계속 부과되지 않도록 본 연습에서 사용한 CodeCommit 리포지토리와 기타 리소스를 삭제하는 것이 좋습니다.

**중요**  
이 작업은 실행을 취소할 수 없습니다. 이 리포지토리를 삭제한 후에는 이 리포지토리를 로컬이나 공유 리포지토리에 더 이상 복제할 수 없습니다. 또 이 리포지토리를 대상으로 데이터를 풀하거나 푸시할 수 없으며 로컬 또는 공유 리포지토리에서 어떠한 Git 연산도 수행할 수 없습니다.  
리포지토리에 대해 알림을 설정한 경우에는 리포지토리 삭제 시 해당 리포지토리에 대해 생성된 Amazon CloudWatch Events 규칙도 함께 삭제됩니다. 단, 해당 규칙의 대상으로 사용된 Amazon SNS 주제는 삭제되지 않습니다.  
리포지토리에 트리거를 구성한 경우에는 해당 리포지토리를 삭제해도 트리거의 대상으로 설정한 Amazon SNS 주제나 Lambda 함수는 삭제되지 않습니다. 필요 없는 리소스는 반드시 삭제하세요. 자세한 내용은 [리포지토리에서 트리거 삭제](how-to-notify-delete.md) 단원을 참조하십시오.

**CodeCommit 리포지토리를 삭제하려면**

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home)에서 CodeCommit 콘솔을 엽니다.

1. **리포지토리**에서 삭제할 리포지토리를 선택합니다. 본 주제의 이름 지정 규칙을 따른 경우 해당 리포지토리는 **MyDemoRepo**로 명명됩니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. **설정** 페이지의 **리포지토리 삭제**에서 **리포지토리 삭제**를 선택합니다.

1. **delete**를 입력한 다음 **삭제**를 선택합니다. 이로써 리포지토리가 영구적으로 삭제됩니다.

## 6단계: 다음 단계
<a name="getting-started-cc-next"></a>

CodeCommit과 그 일부 기능에 익숙해졌으니 이제 다음의 사항들을 고려해 보세요.
+ Git과 CodeCommit을 처음 접하거나 CodeCommit으로 Git을 활용한 사례를 검토하고 싶다면, 계속해서 [Git 및 CodeCommit 시작하기](getting-started.md) 자습서를 참조하세요.
+ CodeCommit 리포지토리에 다른 사람과 작업을 수행하고 싶다면, [리포지토리 공유](how-to-share-repository.md) 섹션을 참조하세요. (다른 Amazon Web Services 계정의 사용자와 자신의 리포지토리를 공유하고 싶다면 [역할을 사용하여 AWS CodeCommit 리포지토리에 대한 교차 계정 액세스 구성](cross-account.md) 단원을 참조하세요.)
+ 리포지토리를 CodeCommit으로 마이그레이션하려면 [CodeCommit으로 마이그레이션](how-to-migrate-repository.md) 섹션에 제시된 단계를 따릅니다.
+ 지속적인 배포 파이프라인에 리포지토리를 추가하려면 [간단한 파이프라인 안내](https://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-cc.html) 자습서의 절차를 따릅니다.
+ 커뮤니티의 사례를 포함하여 CodeCommit과 통합되는 제품 및 서비스에 대해 자세히 알아보려면 [제품 및 서비스 통합](integrations.md) 섹션을 참조하세요.

# Git 및 시작하기 AWS CodeCommit
<a name="getting-started"></a>

Git과 CodeCommit을 처음 사용한다면 이 자습서에서 몇 가지 간단한 명령을 배워 시작할 수 있습니다. 이미 Git에 익숙한 경우 이 자습서를 건너뛰고 [CodeCommit 시작하기 ](getting-started-cc.md)로 이동할 수 있습니다.

이 자습서에서는 CodeCommit 리포지토리의 로컬 사본에 해당하는 리포지토리를 생성합니다. 이를 로컬 지포지토리라고 부릅니다.

먼저 로컬 리포지토리를 만든 후에 몇 가지를 변경합니다. 그런 다음 변경 사항을 CodeCommit 리포지토리로 전송(푸시)합니다.

또한 두 사용자가 독립적으로 변경 사항을 로컬 리포지토리에 커밋하고 CodeCommit 리포지토리에 푸시하는 팀 환경을 시뮬레이션합니다. 그런 다음 각 사용자는 다른 사용자의 변경 사항을 보기 위해 해당 변경 사항을 CodeCommit 리포지토리에서 로컬 리포지토리로 풀합니다.

또한 CodeCommit 리포지토리에서 브랜치와 태그를 생성하고 몇 가지 액세스 권한도 관리합니다.

이 자습서를 완료한 후에는 Git과 CodeCommit에 관한 핵심 개념을 자신의 프로젝트에서 활용할 수 있도록 충분한 연습을 해야 합니다.

다음을 포함하여 [사전 필수 및 설정](setting-up.md)을 완료합니다.
+ IAM 사용자에게 권한을 할당합니다.
+ CodeCommit이 임의의 리포지토리에 연결되도록 설정합니다. 이때 [HTTPS](setting-up-gc.md)나 SSH 또는 [**git-remote-codecommit**](setting-up-git-remote-codecommit.md)을 활용합니다. 어떤 것을 활용할지에 대해서는 [AWS CodeCommit에 대한 설정](setting-up.md) 단원을 참조하세요.
+ 리포지토리 생성을 포함한 모든 작업에 명령줄 또는 터미널을 AWS CLI 사용하려면를 구성합니다.

**Topics**
+ [1단계: CodeCommit 리포지토리 생성](#getting-started-create-repo)
+ [2단계: 로컬 리포지토리 생성](#getting-started-set-up-folders)
+ [3단계: 첫 커밋 생성](#getting-started-create-commit)
+ [4단계: 첫 커밋 푸시](#getting-started-init-repo)
+ [5단계: CodeCommit 리포지토리를 공유하고 또 다른 커밋을 푸시 및 풀하기](#getting-started-pull-commits)
+ [6단계: 브랜치 생성 및 공유](#getting-started-branching)
+ [7단계: 태그 생성 및 공유](#getting-started-tags)
+ [8단계: 액세스 권한 설정](#getting-started-permissions)
+ [9단계: 정리](#getting-started-clean-up)

## 1단계: CodeCommit 리포지토리 생성
<a name="getting-started-create-repo"></a>

이 단계에서는 CodeCommit 콘솔을 사용하여 리포지토리를 생성합니다.

사용할 CodeCommit 리포지토리가 이미 있으면 이 단계를 건너뛸 수 있습니다.

**참고**  
사용량에 따라, 리포지토리를 생성하거나 액세스하는 것에 대한 비용이 부과될 수 있습니다. 자세한 내용은 CodeCommit 제품 정보 페이지에서 [요금](https://aws.amazon.com/codecommit/pricing)을 참조하세요.

**CodeCommit 리포지토리를 생성하려면**

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home)에서 CodeCommit 콘솔을 엽니다.

1. 리전 선택기를 사용하여 리포지토리를 생성할 AWS 리전 를 선택합니다. 자세한 내용은 [리전 및 Git 연결 엔드포인트](regions.md) 단원을 참조하십시오.

1. **리포지토리** 페이지에서 **리포지토리 생성**을 선택합니다.

1. **리포지토리 생성** 페이지에서 **리포지토리 이름**에 해당 리포지토리의 이름(예: **MyDemoRepo**)을 입력합니다.
**참고**  
리포지토리 이름은 대/소문자를 구분하며 100자를 초과할 수 없습니다. 자세한 내용은 [제한](limits.md#limits-repository-names)을 참조하세요.

1. (선택 사항) **설명** 란에 설명 내용을 입력합니다(예: **My demonstration repository**). 그러면 사용자들이 리포지토리의 용도를 식별하는 데 도움이 됩니다.

1. (선택 사항) **태그 추가**를 선택하여 하나 이상의 리포지토리 태그( AWS 리소스를 구성하고 관리하는 데 도움이 되는 사용자 지정 속성 레이블)를 리포지토리에 추가합니다. 자세한 내용은 [에서 리포지토리 태그 지정 AWS CodeCommit](how-to-tag-repository.md) 단원을 참조하십시오.

1. (선택 사항) **추가 구성을** 확장하여이 리포지토리의 데이터를 암호화하고 해독하기 위해 기본 AWS 관리형 키 또는 자체 고객 관리형 키를 사용할지 여부를 지정합니다. 자체 고객 관리형 키를 사용하기로 선택한 경우 리포지토리를 생성하는 AWS 리전 에서 사용할 수 있고 키가 활성 상태인지 확인해야 합니다. 자세한 내용은 [AWS Key Management Service 및 AWS CodeCommit 리포지토리 암호화](encryption.md) 단원을 참조하십시오.

1. (선택 사항) 이 리포지토리에 Java나 Python 코드가 포함될 예정이고 해당 코드를 CodeGuru Reviewer로 분석하고 싶다면, **Java 또는 Python용 Amazon CodeGuru Reviewer 활성화**를 선택합니다. CodeGuru Reviewer는 다양한 기계 학습 모델을 사용하여 코드의 결함을 찾아내고 풀 요청의 개선점과 해결책을 자동으로 제안합니다. 자세한 내용은 Amazon CodeGuru Reviewer 사용 설명서를 참조하세요.

1. **생성(Create)**을 선택합니다.

**참고**  
이 자습서의 나머지 단계에서는 CodeCommit 리포지토리의 이름으로 `MyDemoRepo`를 사용합니다. 다른 이름을 선택하는 경우 이 자습서 전체에서 이를 사용해야 합니다.

터미널 또는 명령줄에서 리포지토리를 생성하는 방법을 포함하여 리포지토리를 생성하는 데 대한 자세한 내용은 [ 리포지토리 생성](how-to-create-repository.md)를 참조하세요.

## 2단계: 로컬 리포지토리 생성
<a name="getting-started-set-up-folders"></a>

이 단계에서는 로컬 컴퓨터에서 로컬 리포지토리를 설정하여 리포지토리에 연결합니다. 이렇게 하려면 로컬 리포지토리를 나타내는 로컬 컴퓨터에서 디렉터리를 선택합니다. Git을 활용해 해당 디렉터리 내에 빈 CodeCommit 리포지토리의 사본을 복제하고 초기화합니다. 그런 다음 커밋에 주석을 다는 데 사용하는 Git 사용자명과 이메일 주소를 지정합니다.

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home)에서 CodeCommit 콘솔을 엽니다.

1. 리전 선택기에서 리포지토리가 생성된 AWS 리전 를 선택합니다. 리포지토리는에 고유합니다 AWS 리전. 자세한 내용은 [리전 및 Git 연결 엔드포인트](regions.md) 단원을 참조하십시오.

1. 목록에서 연결하려는 리포지토리를 찾아서 선택합니다. **URL 복제**를 선택한 다음 리포지토리를 복제하거나 연결할 때 사용할 프로토콜을 선택합니다. 이것으로 복제 URL가 복사됩니다.
   + IAM 사용자를 통한 Git 보안 인증 정보를 활용하거나 AWS CLI에 포함된 보안 인증 도우미를 사용하는 경우 HTTPS URL을 복사합니다.
   + 로컬 컴퓨터에서 **git-remote-codecommit** 명령을 사용하는 경우 HTTPS(GRC) URL을 복사합니다.
   + IAM 사용자와 SSH 퍼블릭/프라이빗 키 페어를 사용하는 경우 SSH URL을 복사합니다.
**참고**  
 리포지토리 목록 대신 **시작** 페이지가 표시되면 로그인한에 AWS 계정과 연결된 AWS 리전 리포지토리가 없는 것입니다. 리포지토리를 만들려면 [AWS CodeCommit 리포지토리 생성](how-to-create-repository.md)을(를) 참조하거나 [Git 및 CodeCommit 시작하기](#getting-started) 자습서의 다음 단계를 따르세요.

1. (선택 사항) 로컬 Git 클라이언트는 리포지토리의 기본 브랜치에 **main**이라는 이름을 쓰도록 구성하는 것이 좋습니다. 이 이름은 본 가이드에서 모든 예제의 기본 브랜치에 사용됩니다. 또한 콘솔에서 첫 커밋을 만들 때 CodeCommit이 사용하는 기본 브랜치에도 똑같이 쓰입니다. 다음 명령을 실행하여 시스템의 기본 브랜치 이름을 전역으로 구성합니다.

   ```
   git config --global init.defaultBranch main
   ```

   만약 모든 리포지토리의 기본 브랜치 이름을 전부 다르게 사용하고 싶다면 **main**을 원하는 이름으로 변경합니다. 본 자습서에서는 기본 브랜치의 이름을 main으로 가정합니다. ** 

   리포지토리별로 기본 브랜치 이름을 다르게 사용하려면 이 속성을 글로벌(**--global**)이 아닌 로컬(**--local**)로 설정하면 됩니다.

1. 터미널 또는 명령 프롬프트에서, **git clone** 명령으로 리포지토리를 복제하고 3단계에서 복사한 복제 URL을 입력합니다. 복제 URL은 사용하는 프로토콜 및 구성에 따라 결정됩니다. 예를 들어, 미국 동부(오하이오) 리전에서 Git 보안 인증 정보와 함께 HTTPS를 사용하여 *MyDemorepo*라는 리포지토리를 복제하려는 경우는 다음과 같습니다.

   ```
   git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
   ```

   **git-remote-codecommit**와 함께 HTTPS를 사용하는 경우는 다음과 같습니다.

   ```
   git clone codecommit://MyDemoRepo my-demo-repo
   ```

   SSH를 사용 중인 경우는 다음과 같습니다.

   ```
   git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
   ```
**참고**  
리포지토리를 복제하려고 할 때 오류가 표시되면 로컬 컴퓨터에 필요한 설정을 완료하지 않았을 수 있습니다. 자세한 내용은 [AWS CodeCommit에 대한 설정](setting-up.md) 단원을 참조하십시오.

## 3단계: 첫 커밋 생성
<a name="getting-started-create-commit"></a>

이 단계에서는 로컬 리포지토리에 첫 커밋을 생성합니다. 이를 위해 로컬 리포지토리에 예제 파일을 2개 생성합니다. Git을 사용하여 로컬 리포지토리에서 변경 사항을 준비하고, 로컬 리포지토리에 해당 변경 사항을 커밋합니다.

1. 텍스트 편집기를 사용하여 디렉터리에 다음과 같은 예제 텍스트 파일을 2개 생성합니다. `cat.txt` 및 `dog.txt` 파일의 이름 지정:

   ```
   cat.txt
   -------
   The domestic cat (Felis catus or Felis silvestris catus) is a small, usually furry, domesticated, and carnivorous mammal.
   ```

   

   ```
   dog.txt
   -------
   The domestic dog (Canis lupus familiaris) is a canid that is known as man's best friend.
   ```

1. **git config**를 실행하여 자리 표시자 *your-user-name* 및 *your-email-address*로 나타내는 사용자 이름 및 이메일 주소를 로컬 리포지토리에 추가합니다. 이렇게 하면 커밋을 쉽게 식별할 수 있습니다.

   ```
   git config --local user.name "your-user-name"
   git config --local user.email your-email-address
   ```

1. 로컬 리포지토리를 생성할 때 기본 브랜치 이름을 전역으로 설정하지 않은 경우, 다음 명령을 실행하여 기본 브랜치 이름을 **main**으로 설정합니다.

   ```
   git config --local init.defaultBranch main
   ```

1. **git add**를 실행하여 변경 내용을 준비합니다.

   ```
   git add cat.txt dog.txt
   ```

1. **git commit**를 실행하여 변경 내용을 커밋합니다.

   ```
   git commit -m "Added cat.txt and dog.txt"
   ```
**작은 정보**  
생성한 커밋의 세부 정보를 보려면 **git log**를 실행합니다.

## 4단계: 첫 커밋 푸시
<a name="getting-started-init-repo"></a>

이 단계에서는 커밋을 로컬 리포지토리에서 CodeCommit 리포지토리로 푸시합니다.

**git push**를 실행하여, Git이 CodeCommit 리포지토리에 사용하는 기본 원격 이름(`origin`)을 통해 로컬 리포지토리의 기본 브랜치(`main`)에서 커밋을 푸시합니다.

```
git push -u origin main
```

**작은 정보**  
CodeCommit 리포지토리에 파일을 푸시하고 나면, CodeCommit 콘솔을 사용하여 해당 콘텐츠를 볼 수 있습니다. 자세한 내용은 [리포지토리에서 파일 검색](how-to-browse.md) 단원을 참조하십시오.

## 5단계: CodeCommit 리포지토리를 공유하고 또 다른 커밋을 푸시 및 풀하기
<a name="getting-started-pull-commits"></a>

이 단계에서는 팀원 한 명과 함께 CodeCommit 리포지토리에 대한 정보를 공유합니다. 팀원은 이 정보를 사용하여 로컬 사본을 생성하고 몇 가지 사항을 변경하며 수정된 로컬 사본을 CodeCommit 리포지토리에 푸시합니다. 그런 다음 CodeCommit 리포지토리에서 로컬 리포지토리로 변경 사항을 풀합니다.

이 자습서에서는 [2단계](#getting-started-set-up-folders)에서 생성한 것과는 별개인 디렉터리를 생성하는 Git로 사용자 따르기를 시뮬레이션합니다. (일반적으로 이 디렉터리는 다른 시스템에 있습니다.) 이 새 디렉터리는 CodeCommit 리포지토리의 복사본입니다. 기존 디렉터리나 이 새 디렉터리에 대한 변경 사항은 모두 독립적으로 이루어집니다. 이 디렉터리에 대한 변경 사항을 식별하는 유일한 방법은 CodeCommit 리포지토리에서 풀하는 것입니다.

동일한 로컬 시스템에 있다고 해도 기존 디렉터리 *local repo* 및 새 디렉터리 *shared repo*를 호출합니다.

새 디렉터리에서 CodeCommit 리포지토리의 사본을 별도로 하나 만듭니다. 그런 다음 새 예제 파일을 추가하고, 공유 리포지토리에 변경 내용을 커밋하며, 공유 리포지토리의 커밋을 CodeCommit 리포지토리로 푸시합니다.

마지막으로 리포지토리의 변경 내용을 로컬 리포지토리로 풀하고 다른 사용자가 커밋한 변경 내용을 볼 수 있도록 살펴봅니다.

1. `/tmp` 디렉터리 또는 `c:\temp` 디렉터리로 전환합니다.

1. **git clone**을 실행하여 리포지토리 사본을 공유 리포지토리로 풀다운합니다.

   HTTPS의 경우에는 다음과 같이 합니다.

   ```
   git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo shared-demo-repo
   ```

   **git-remote-codecommit**를 사용하는 HTTPS의 경우:

   ```
   git clone codecommit://MyDemoRepo shared-demo-repo
   ```

   SSH의 경우:

   ```
   git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo shared-demo-repo
   ```
**참고**  
Windows 운영 체제에서 SSH를 사용하여 리포지토리를 복제할 경우 다음과 같이 SSH 키 ID를 연결 문자열에 추가해야 할 수 있습니다.  

   ```
   git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
   ```
자세한 내용은 [Windows에서 SSH 연결](setting-up-ssh-windows.md) 단원을 참조하십시오.

   이 명령에서 `MyDemoRepo`는 CodeCommit 리포지토리의 이름입니다. `shared-demo-repo`는 `/tmp` 디렉터리 또는 `c:\temp` 디렉터리에서 Git이 생성하는 디렉터리의 이름입니다. Git에서 디렉터리가 생성된 후에는 리포지토리의 복사본이 `shared-demo-repo` 디렉터리로 풀다운됩니다.

1. `shared-demo-repo` 디렉터리로 전환합니다.

   ```
   (For Linux, macOS, or Unix) cd /tmp/shared-demo-repo
   (For Windows) cd c:\temp\shared-demo-repo
   ```

1. **git config**를 실행하여 자리 표시자 *other-user-name* 및 *other-email-address*로 나타내는 다른 사용자 이름 및 이메일 주소를 추가합니다. 이렇게 하면 다른 사용자의 커밋을 쉽게 식별할 수 있습니다.

   ```
   git config --local user.name "other-user-name"
   git config --local user.email other-email-address
   ```

1. 텍스트 편집기를 사용하여 다음 예제 텍스트 파일을 `shared-demo-repo`에서 생성합니다. `horse.txt` 파일의 이름을 지정합니다.

   ```
   horse.txt
   -------
   The horse (Equus ferus caballus) is one of two extant subspecies of Equus ferus.
   ```

1. **git add**를 실행하여 공유 리포지토리로 변경 내용을 준비합니다.

   ```
   git add horse.txt
   ```

1. **git commit**를 실행하여 공유 리포지토리로 변경 내용을 커밋합니다.

   ```
   git commit -m "Added horse.txt"
   ```

1. **git push**를 실행하여, Git이 CodeCommit 리포지토리에 사용하는 기본 원격 이름(`origin`)을 통해 로컬 리포지토리의 기본 브랜치(`main`)에서 초기 커밋을 푸시합니다.

   ```
   git push -u origin main
   ```

1. 로컬 리포지토리로 전환하고 **git pull**을 실행하여, 공유 리포지토리가 CodeCommit 리포지토리에 만든 커밋을 로컬 리포지토리로 풀합니다. 그런 다음 **git log**를 실행하여 공유 리포지토리에서 초기화된 커밋을 확인합니다.

## 6단계: 브랜치 생성 및 공유
<a name="getting-started-branching"></a>

이 단계에서는 로컬 리포지토리에서 브랜치를 생성하고, 몇 가지 사항을 변경한 다음, 이 브랜치를 CodeCommit 리포지토리로 푸시합니다. 그런 다음 CodeCommit 리포지토리에서 공유 리포지토리에 브랜치를 풀합니다.

브랜치를 사용하면 서로 다른 버전의 리포지토리 콘텐츠를 독립적으로 개발할 수 있습니다(예를 들어, 팀원 작업에 영향을 주지 않고 새 소프트웨어 기능으로 작업할 수 있음). 이 기능이 안정화되면 브랜치를 더욱 안정화된 소프트웨어 브랜치로 병합합니다.

Git을 사용하여 브랜치를 생성하고 만들어 놓은 첫 커밋을 가리키도록 합니다. Git을 사용하여 브랜치를 CodeCommit 리포지토리로 푸시합니다. 그런 다음 공유 리포지토리로 전환하고 Git을 사용하여 새 브랜치를 공유 로컬 리포지토리로 풀하고 해당 브랜치를 탐색합니다.

1. 로컬 리포지토리에서 **git checkout**을 실행하고, 브랜치의 이름(예: `MyNewBranch`)과 로컬 리포지토리에서 만든 첫 커밋의 ID를 지정합니다.

   커밋 ID를 모르면 **git log**를 실행하여 확인합니다. 커밋에 다른 사용자의 사용자 이름과 이메일 주소가 아닌 본인의 사용자 이름과 이메일 주소가 있는지 확인합니다. 이렇게 하여 `main`이 CodeCommit 리포지토리의 안정화 버전인지, 그리고 `MyNewBranch` 브랜치가 새롭지만 상대적으로 안정화되지 않은 기능인지 시뮬레이션할 수 있습니다.

    

   ```
   git checkout -b MyNewBranch commit-ID
   ```

1. **git push**를 실행하여 로컬 리포지토리에서 CodeCommit 리포지토리로 새 브랜치를 전송합니다.

   ```
   git push origin MyNewBranch
   ```

1. 이제 브랜치를 공유 리포지토리로 풀하고 결과를 확인합니다.

   1. 공유 리포지토리 디렉터리(shared-demo-repo)로 전환합니다.

   1. 새 브랜치(**git fetch origin**)를 풀합니다.

   1. 새 브랜치(**git branch --all**은 리포지토리에 대한 모든 브랜치 목록을 표시함)를 풀했는지 확인합니다.

   1. 새로운 브랜치(**git checkout MyNewBranch**)로 전환합니다.

   1. **git status** 또는 **git branch**를 실행하여 `MyNewBranch` 브랜치로 전환했는지 확인합니다. 현재 위치한 브랜치가 결과에 표시됩니다. 이 경우 `MyNewBranch`가 되어야 합니다.

   1. 브랜치(**git log**)에서 커밋 목록을 확인합니다.

   호출할 Git 명령 목록은 다음과 같습니다.

   ```
   git fetch origin
   git branch --all
   git checkout MyNewBranch
   git branch or git status
   git log
   ```

1. `main` 브랜치로 다시 전환하여 커밋 목록을 확인합니다. Git 명령은 다음과 같은 형식이어야 합니다.

    

   ```
   git checkout main
   git log
   ```

1. 로컬 리포지토리에서 `main` 브랜치로 전환합니다. **git status** 또는 **git branch**를 실행할 수 있습니다. 현재 위치한 브랜치가 결과에 표시됩니다. 이 경우 `main`가 되어야 합니다. Git 명령은 다음과 같은 형식이어야 합니다.

    

   ```
   git checkout main
   git branch or git status
   ```

## 7단계: 태그 생성 및 공유
<a name="getting-started-tags"></a>

이 단계에서는 로컬 리포지토리에 두 개의 태그를 생성해 커밋과 연결한 다음 CodeCommit 리포지토리로 푸시합니다. 그런 다음 CodeCommit 리포지토리에서 공유 리포지토리로 변경 사항을 풀합니다.

태그는 커밋(또는 분기나 다른 태그)에 사람이 읽을 수 있는 이름을 제공하는 데 사용됩니다. 예를 들어 커밋에 `v2.1`과 같은 태그를 지정하려면 이렇게 할 수 있습니다. 커밋, 브랜치 또는 태그에 연결할 수 있는 태그 수는 제한이 없지만 개별 태그는 하나의 커밋, 브랜치 또는 태그에만 연결할 수 있습니다. 이 자습서에서는 한 커밋에는 `release`라는 태그를 지정하고, 다른 커밋에는 `beta`라는 태그를 지정합니다.

Git을 사용하여 태그를 생성하고 `release` 태그로 만들었던 첫 커밋을 가리키며, `beta` 태그로 다른 사용자가 만든 커밋을 가리킵니다. 다음으로 Git을 사용하여 CodeCommit 리포지토리로 태그를 푸시합니다. 다음으로 공유 리포지토리로 전환하고, Git을 사용하여 공유 로컬 리포지토리로 태그를 풀한 다음, 해당 태그를 탐색합니다.

1. 로컬 리포지토리에서 **git tag**를 실행하고, 새 태그의 이름(`release`)과 로컬 리포지토리에서 만든 첫 커밋의 ID를 지정합니다.

   커밋 ID를 모르면 **git log**를 실행하여 확인합니다. 커밋에 다른 사용자의 사용자 이름과 이메일 주소가 아닌 본인의 사용자 이름과 이메일 주소가 있는지 확인합니다. 이렇게 하여 커밋이 CodeCommit 리포지토리의 안정화 버전인지 시뮬레이션할 수 있습니다.

   ```
   git tag release commit-ID
   ```

   **git tag**를 다시 실행하여 `beta` 태그로 다른 사용자의 커밋에 태그를 지정합니다. 이렇게 커밋이 새롭지만 상대적으로 안정화되지 않은 기능인지 시뮬레이션합니다.

    

   ```
   git tag beta commit-ID
   ```

1. **git push --tags**를 실행하여 CodeCommit 리포지토리로 태그를 전송합니다.

1. 이제 태그를 공유 리포지토리로 풀하고 결과를 확인합니다.

   1. 공유 리포지토리 디렉터리(shared-demo-repo)로 전환합니다.

   1. 새 태그(**git fetch origin**)에서 풀합니다.

   1. 새 태그가 (**git tag**은 리포지토리에 대한 모든 태그 목록을 표시함)에서 풀했는지 확인합니다.

   1. 각 태그(**git log release** 및 **git log beta**)에 대한 정보를 확인합니다.

   호출할 Git 명령 목록은 다음과 같습니다.

   ```
   git fetch origin
   git tag
   git log release
   git log beta
   ```

1. 이 과정을 로컬 리포지토리에서도 시도합니다.

   ```
   git log release
   git log beta
   ```

## 8단계: 액세스 권한 설정
<a name="getting-started-permissions"></a>

이 단계에서는 공유 리포지토리를 CodeCommit 리포지토리와 동기화하기 위해 사용자 권한을 제공합니다. 이 단계는 선택 사항입니다. CodeCommit 리포지토리에 대한 액세스를 제어하는 방법을 배우려는 사용자에게 권장합니다. 사용자가 Git 보안 인증 정보를 사용하거나 IAM 사용자가 CodeCommit 리포지토리에 액세스하기 위해 SSH 키 페어를 사용할 때 수행하는 것이 좋습니다.

**참고**  
페더레이션 액세스, 임시 보안 인증 정보, 또는 IAM Identity Center 같은 웹 자격 증명 공급자를 사용하는 경우에는 ID 공급자의 사용자, 액세스. 권한 등을 설정한 다음 **git-remote-codecommit**을 사용합니다. 자세한 정보는 [git-remote-codecommit을 AWS CodeCommit 사용하여에 대한 HTTPS 연결을 위한 설정 단계](setting-up-git-remote-codecommit.md) 및 [교체 자격 증명을 사용하여 AWS CodeCommit 리포지토리에 연결](temporary-access.md) 섹션을 참조하세요.

이렇게 하려면 IAM 콘솔을 사용하여 사용자를 생성합니다. 기본적으로 이 사용자에게는 공유 리포지토리를 CodeCommit 리포지토리와 동기화할 수 있는 권한이 없습니다. **git pull**을 실행하여 이를 확인할 수 있습니다. 새 사용자에게 동기화할 권한이 없는 경우 명령이 실행되지 않습니다. 그러면 IAM 콘솔로 돌아와 사용자가 **git pull**을 사용할 수 있도록 허용하는 정책을 적용합니다. 다시 **git pull**을 실행하여 이를 확인할 수 있습니다.

이 단계는 Amazon Web Services 계정에서 IAM 사용자를 생성할 수 있는 권한이 있다는 가정 하에 작성되었습니다. 이 권한이 없으면 이 단계의 절차를 수행할 수 없습니다. 자습서에 사용한 리소스를 정리하려면 [9단계: 정리](#getting-started-clean-up)으로 건너뜁니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

   [설정 ](setting-up.md)에서 사용한 동일한 사용자 이름과 암호로 로그인했는지 확인합니다.

1. 탐색 창에서 **사용자**와 **새 사용자 만들기**를 차례대로 선택합니다.

1. 첫 번째 **사용자 이름 입력** 상자에서 예제 사용자 이름(예: **JaneDoe-CodeCommit**)을 입력합니다. **각 사용자의 액세스 키 생성** 상자를 선택한 후 **생성**을 선택합니다.

1. **사용자 보안 인증 정보 표시**를 선택합니다. 액세스 키 ID 및 비밀 액세스 키를 기록하거나 **보안 인증 정보 다운로드**를 선택합니다.

1. [Git 보안 인증 정보를 사용하는 HTTPS 사용자의 경우](setting-up-gc.md)의 지침에 따라 IAM 사용자의 보안 인증 정보를 생성하고 제공합니다.

   SSH를 사용하려면 [SSH와 Linux, macOS Unix: Git과 CodeCommit에 사용되는 퍼블릭 키와 프라이빗 키를 설정합니다.](setting-up-ssh-unixes.md#setting-up-ssh-unixes-keys-unixes) 또는 [3단계: Git과 CodeCommit에 사용되는 퍼블릭 키와 프라이빗 키 설정](setting-up-ssh-windows.md#setting-up-ssh-windows-keys-windows)의 지침을 따라 퍼블릭 및 프라이빗 키로 사용자를 설정합니다.

1. **git pull**를 실행합니다. 다음 오류가 나타납니다.

   HTTPS의 경우에는 다음과 같이 합니다.

    `fatal: unable to access 'https://git-codecommit.us-east-2.amazonaws.com/v1/repos/repository-name/': The requested URL returned error: 403`. 

   SSH의 경우:

   `fatal: unable to access 'ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/repository-name/': The requested URL returned error: 403`. 

   새 사용자에게 공유 리포지토리를 CodeCommit 리포지토리와 동기화할 권한이 없어 이런 오류가 발생하는 것입니다.

1. IAM 콘솔로 돌아갑니다. 탐색 창에서 **정책**을 선택한 후 **정책 생성**을 선택합니다. (**시작하기** 버튼이 표시되면 이 버튼을 선택한 후 **정책 생성**을 선택합니다.)

1. **자체 정책 생성** 옆의 **선택**을 선택합니다.

1. **정책 이름** 상자에 이름을 입력합니다(예: **CodeCommitAccess-GettingStarted**).

1. IAM 사용자가 자신과 연결된 리포지토리에서 풀할 수 있도록 **정책 문서** 상자에서 다음을 입력합니다.

    

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "codecommit:GitPull"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

    
**작은 정보**  
IAM 사용자가 자신과 연결된 리포지토리로 커밋을 푸시할 수 있도록 하려면 다음을 대신 입력합니다.  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "codecommit:GitPull",
           "codecommit:GitPush"
         ],
         "Resource": "*"
       }
     ]
   }
   ```
다른 CodeCommit 작업과, 사용자에게 제공할 수 있는 리소스 권한에 대해 자세히 알아보려면 [에 대한 인증 및 액세스 제어 AWS CodeCommit](auth-and-access-control.md) 섹션을 참조하세요.

1. 탐색 창에서 **사용자**를 선택합니다.

1. 정책에 첨부할 예제 사용자 이름(예: **JaneDoe-CodeCommit**)을 선택합니다.

1. **권한** 탭을 선택합니다.

1. **관리형 정책**에서 **정책 연결**을 선택합니다.

1. 방금 생성한 **CodeCommitAccess-GettingStarted** 정책을 선택한 후 **정책 연결**을 선택합니다.

1. **git pull**를 실행합니다. 이제 명령이 실행되면서 `Already up-to-date` 메시지가 표시되어야 합니다.

1. HTTPS를 사용하는 경우 원래 Git 자격 증명으로 전환하거나 **git-remote-codecommit**를 사용하는 경우 일반 프로파일로 전환합니다. 자세한 내용은 [Git 보안 인증 정보를 사용하는 HTTPS 사용자를 위한 설정](setting-up-gc.md) 단원 또는 [git-remote-codecommit을 AWS CodeCommit 사용하여에 대한 HTTPS 연결을 위한 설정 단계](setting-up-git-remote-codecommit.md) 단원을 참조하세요.

   SSH를 사용하는 경우 원래 키로 전환합니다. 자세한 내용은 [SSH와 Linux, macOS Unix: Git과 CodeCommit에 사용되는 퍼블릭 키와 프라이빗 키를 설정합니다.](setting-up-ssh-unixes.md#setting-up-ssh-unixes-keys-unixes) 또는 [3단계: Git과 CodeCommit에 사용되는 퍼블릭 키와 프라이빗 키 설정](setting-up-ssh-windows.md#setting-up-ssh-windows-keys-windows)을 참조하세요.

본 자습서를 이수하셨습니다.

## 9단계: 정리
<a name="getting-started-clean-up"></a>

이 단계에서는 이 자습서에서 사용한 CodeCommit 리포지토리를 삭제하여 스토리지 공간에 대해 요금이 청구되지 않도록 합니다.

CodeCommit 리포지토리를 삭제하면 로컬 리포지토리와 공유 리포지토리는 더 이상 필요하지 않으므로 로컬 컴퓨터에서 제거해도 됩니다.

**중요**  
이 리포지토리를 삭제하면 이 리포지토리를 로컬 또는 공유 리포지토리에 복제할 수 없게 됩니다. 또한 로컬 또는 공유 리포지토리를 대상으로 데이터를 풀하거나 푸시할 수 없습니다. 이 작업은 실행을 취소할 수 없습니다.

### CodeCommit 리포지토리를 삭제하려면 (콘솔)
<a name="getting-started-clean-up-console"></a>

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home)에서 CodeCommit 콘솔을 엽니다.

1. **대시보드** 페이지에서 리포지토리 목록 중 **MyDemoRepo**를 선택합니다.

1. 탐색 창에서 **설정**을 선택합니다.

1. **설정** 페이지의 **리포지토리 삭제**에서 **리포지토리 삭제**를 선택합니다.

1. **리포지토리의 이름을 입력하여 삭제를 확인** 옆의 상자에 **MyDemoRepo**를 입력한 다음 **삭제**를 선택합니다.

### CodeCommit 리포지토리를 삭제하려면 (AWS CLI)
<a name="getting-started-clean-up-cli"></a>

[리포지토리 삭제](how-to-delete-repository.md#how-to-delete-repository-cli) 명령을 실행합니다.

```
aws codecommit delete-repository --repository-name MyDemoRepo
```

### 로컬 및 공유 리포지토리를 삭제하려면
<a name="getting-started-delete-repos"></a>

Linux, macOS, Unix의 경우: 

```
cd /tmp
rm -rf /tmp/my-demo-repo
rm -rf /tmp/shared-demo-repo
```

Windows의 경우: 

```
cd c:\temp
rd /s /q c:\temp\my-demo-repo
rd /s /q c:\temp\shared-demo-repo
```