

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

# 에서 커밋 세부 정보 보기 AWS CodeCommit
<a name="how-to-view-commit-details"></a>

 AWS CodeCommit 콘솔을 사용하여 리포지토리에서 커밋 기록을 찾아볼 수 있습니다. 이를 통해 다음 사항을 포함한 리포지토리 변경 사항을 파악할 수 있습니다.
+ 변경 시점 및 변경 주체
+ 특정 커밋이 브랜치에 병합된 시점

브랜치에 대한 커밋 이력을 조회하는 것도 브랜치 간 차이를 이해하는 데 도움이 될 수 있습니다. 태깅을 사용하는 경우에는 태그로 레이블이 지정된 커밋과 태그가 지정된 커밋의 부모를 신속하게 조회할 수도 있습니다. 명령줄에서 Git을 사용해 로컬 리포지토리 또는 CodeCommit 리포지토리의 커밋에 대한 세부 정보를 볼 수 있습니다.

## 리포지토리의 커밋 검색
<a name="how-to-view-commit-details-console"></a>

 AWS CodeCommit 콘솔을 사용하여 리포지토리에 대한 커밋 기록을 찾아볼 수 있습니다. 또한 리포지토리 및 그 브랜치 내 커밋을 시간 경과에 따라 표기한 그래프 형태로 볼 수 있습니다. 이를 통해 변경 시점을 포함한 리포지토리의 이력을 이해할 수 있습니다.

**참고**  
**git rebase** 명령을 사용하여 리포지토리를 리베이스하면 리포지토리의 이력이 변경되어 커밋의 순서가 흐트러져 보일 수 있습니다. 자세한 내용은 [Git Branching-Rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) 또는 해당 Git 문서를 참조하세요.

**Topics**
+ [리포지토리의 커밋 이력 검색](#how-to-view-commit-details-console-history)
+ [리포지토리의 커밋 이력을 그래프 형태로 보기](#how-to-view-commit-details-console-visualizer)

### 리포지토리의 커밋 이력 검색
<a name="how-to-view-commit-details-console-history"></a>

커미터에 대한 정보와 커밋 메시지를 포함해 해당 리포지토리의 특정 브랜치 또는 태그에 대한 커밋 이력을 조회할 수 있습니다. 또한 커밋에 대한 코드도 볼 수 있습니다.

**커밋 이력을 찾아보려면**

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

1. **리포지토리**에서, 커밋 이력을 보고자 하는 리포지토리를 선택합니다.

1. 탐색 창에서 **커밋**을 선택합니다. 커밋 이력 보기에 기본 브랜치의 리포지토리에 대한 커밋 이력이 최신 커밋 날짜부터 순서대로 표시됩니다. 날짜 및 시간은 협정 세계시(UTC)로 표시됩니다. 보기 선택 버튼을 누른 후 목록에서 다른 브랜치를 선택하면 그 브랜치의 커밋 이력을 볼 수 있습니다. 리포지토리에 태그를 사용하고 있다면 보기 선택 버튼에서 태그를 선택하여 그 태그가 있는 커밋과 그 부모 커밋을 조회할 수 있습니다.  
![\[콘솔의 커밋 보기\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-commit-list.png)

1. 커밋과 그 상위 항목 간의 차이와 변경 내용에 대한 주석을 보려면 약식 커밋 ID를 선택합니다. 자세한 내용은 [한 커밋을 상위 커밋과 비교](how-to-compare-commits.md#how-to-compare-commits-parent) 및 [커밋에 대한 주석 추가](how-to-commit-comment.md) 섹션을 참조하세요. 브랜치, 태그, 커밋 ID 등 한 커밋과 기타 커밋 지정자 간의 차이를 보려면 [임의의 두 커밋 지정자 비교](how-to-compare-commits.md#how-to-compare-commits-compare) 단원을 참조하세요.

1. 다음 중 한 개 이상을 수행할 수 있습니다.
   + 변경이 이루어진 날짜와 시간을 보려면 커밋 날짜 위에 마우스 포인터를 놓으세요.
   + 축약되지 않은 커밋 ID를 보려면 커밋 ID를 복사하여 텍스트 편집기 또는 기타 위치에 붙여 넣습니다. 복사하려면 **ID 복사**를 선택합니다.
   + 커밋 당시의 코드를 보려면 **찾아보기**를 선택합니다. 해당 커밋 시점의 리포지토리 콘텐츠가 **코드** 보기에 표시됩니다. 보기 선택 버튼에 브랜치 또는 태그 대신에 약식 커밋 ID가 표시됩니다.

### 리포지토리의 커밋 이력을 그래프 형태로 보기
<a name="how-to-view-commit-details-console-visualizer"></a>

특정 리포지토리에 대한 커밋을 그래프 형태로 볼 수 있습니다. **커밋 시각화 도우미** 보기에는 해당 리포지토리의 한 브랜치에 대한 모든 커밋이 방향성 비사이클 그래프(DAG) 형태로 표시됩니다. 이 그래프를 통해 커밋과 관련 기능이 추가 또는 병합된 시점을 알 수 있습니다. 또한 다른 변경 사항과 관련해 이루어진 변경 사항을 정확히 식별할 수 있습니다.

**참고**  
패스트 포워드 방법을 사용해 병합한 커밋은 커밋 그래프에 별도의 줄로 표시되지 않습니다.

**커밋 그래프를 보려면**

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

1. **리포지토리**에서 커밋 그래프를 보고자 하는 리포지토리를 선택합니다.

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

   커밋 그래프에서 각 커밋 메시지의 약식 커밋 ID 및 제목이 그래프의 해당 시점 옆에 표시됩니다.
**참고**  
그래프는 한 페이지에 최대 35개의 브랜치를 표시할 수 있습니다. 브랜치가 35개를 넘는 경우에는 너무 복잡하여 표시되지 않습니다. 이 경우 보기를 다음과 같은 두 가지 방법으로 단순화할 수 있습니다.  
보기 선택 버튼을 사용하여 특정 브랜치에 대한 그래프를 표시
축약되지 않은 커밋 ID를 검색 상자에 붙여 넣어 해당 커밋에서 그래프를 렌더링

1. 특정 커밋에서 새 그래프를 렌더링하려면 그 커밋에 해당하는 그래프에서 시점을 선택합니다. 보기 선택 버튼이 약식 커밋 ID로 변경됩니다.  
![\[특정 커밋에서 렌더링된 새 그래프\]](http://docs.aws.amazon.com/ko_kr/codecommit/latest/userguide/images/codecommit-cv-commit.png)

## 커밋 세부 정보 보기 (AWS CLI)
<a name="how-to-view-commit-details-cli"></a>

Git를 통해 커밋에 대한 세부 정보를 조회할 수 있습니다. 를 사용하여 다음 명령을 실행 AWS CLI 하여 로컬 리포지토리 또는 CodeCommit 리포지토리의 커밋에 대한 세부 정보를 볼 수도 있습니다.
+ 커밋에 대한 정보를 보려면 **[aws codecommit get-commit](#how-to-view-commit-details-cli-commit)**을 실행합니다.
+ 여러 커밋에 대한 정보를 보려면 **[aws codecommit batch-get-commits](#how-to-view-commit-details-cli-batch-get-commits)**을 실행합니다.
+ 병합 커밋에 대한 정보를 보려면 **[aws codecommit get-merge-commit](#how-to-view-commit-details-cli-merge-commit)**을 실행합니다.
+ 커밋 지정자의 변경 사항에 대한 정보를 보려면(브랜치, 태그, HEAD 또는 커밋 ID와 같은 기타 정규화된 참조) **[aws codecommit get-differences](#how-to-view-commit-details-cli-differences)**를 실행합니다.
+ 리포지토리에 있는 Git blob 객체의 base64 인코딩 내용을 보려면 **[aws codecommit get-blob](#how-to-view-commit-details-cli-blob)**을 실행합니다.

### 커밋에 대한 정보를 보려면
<a name="how-to-view-commit-details-cli-commit"></a>

1. 다음을 지정하여 **aws codecommit get-commit** 명령을 실행합니다.
   + CodeCommit 리포지토리의 이름(`--repository-name` 옵션 사용)
   + 축약되지 않은 커밋 ID 

   예를 들어 `MyDemoRepo`라는 CodeCommit 리포지토리에서 ID가 `317f8570EXAMPLE`인 커밋에 대한 정보를 보려면 다음을 수행합니다.

   ```
   aws codecommit get-commit  --repository-name MyDemoRepo  --commit-id 317f8570EXAMPLE 
   ```

1. 이 명령이 제대로 실행되면 다음 사항이 출력됩니다.
   + 타임스탬프 형식의 날짜 및 협정 세계시(UTC) 오프셋을 포함한 커밋 작성자(Git에 구성됨) 정보
   + 타임스탬프 형식의 날짜 및 UTC 오프셋을 포함한 커미터(Git에 구성됨) 정보
   + 커밋이 존재하는 Git 트리의 ID
   + 상위 커밋의 커밋 ID
   + 커밋 메시지

   다음은 위 예제 명령의 출력 예입니다.

   ```
   {
       "commit": {
           "additionalData": "",
           "committer": {
               "date": "1484167798 -0800",
               "name": "Mary Major",
               "email": "mary_major@example.com"
           },
           "author": {
               "date": "1484167798 -0800",
               "name": "Mary Major",
               "email": "mary_major@example.com"
           },
           "treeId": "347a3408EXAMPLE",
           "parents": [
               "4c925148EXAMPLE"
           ],
           "message": "Fix incorrect variable name"
       }
   }
   ```

### 병합 커밋에 대한 정보를 보려면
<a name="how-to-view-commit-details-cli-merge-commit"></a>

1. 다음을 지정하여 **get-merge-commit** 명령을 실행합니다.
   + 병합 소스의 커밋 지정자(**--source-commit-specifier** 옵션 사용).
   + 병합 대상의 커밋 지정자(**--destination-commit-specifier** 옵션 사용).
   + 사용하려는 병합 옵션(**--merge-option** 옵션 사용).
   + 리포지토리의 이름(**--repository-name** 옵션 사용).

   예를 들어, *MyDemoRepo*라는 리포지토리에서 *삼방향 병합* 전략을 사용하여 *bugfix-bug1234* 소스 브랜치와 *main*이라는 대상 브랜치에 대한 병합 커밋에 대한 정보를 보려면 다음과 같이 합니다.

   ```
   aws codecommit get-merge-commit --source-commit-specifier bugfix-bug1234 --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

1. 이 명령이 제대로 실행되면 이 명령의 출력으로 다음과 비슷한 정보가 반환됩니다.

   ```
   {
       "sourceCommitId": "c5709475EXAMPLE", 
       "destinationCommitId": "317f8570EXAMPLE", 
       "baseCommitId": "fb12a539EXAMPLE",
       "mergeCommitId": "ffc4d608eEXAMPLE"
   }
   ```

### 여러 커밋에 대한 정보 보기
<a name="how-to-view-commit-details-cli-batch-get-commits"></a>

1. 다음을 지정하여 **batch-get-commits** 명령을 실행합니다.
   + CodeCommit 리포지토리의 이름(`--repository-name` 옵션 사용)
   + 정보를 보려는 모든 커밋에 대한 전체 커밋 ID의 목록 

   예를 들어 `MyDemoRepo`라는 CodeCommit 리포지토리에서 ID가 `317f8570EXAMPLE` 및 `4c925148EXAMPLE`인 커밋에 대한 정보를 보려면 다음과 같이 합니다.

   ```
   aws codecommit batch-get-commits  --repository-name MyDemoRepo  --commit-ids 317f8570EXAMPLE 4c925148EXAMPLE
   ```

1. 이 명령이 제대로 실행되면 다음 사항이 출력됩니다.
   + 타임스탬프 형식의 날짜 및 협정 세계시(UTC) 오프셋을 포함한 커밋 작성자(Git에 구성됨) 정보
   + 타임스탬프 형식의 날짜 및 UTC 오프셋을 포함한 커미터(Git에 구성됨) 정보
   + 커밋이 존재하는 Git 트리의 ID
   + 상위 커밋의 커밋 ID
   + 커밋 메시지

   다음은 위 예제 명령의 출력 예입니다.

   ```
   {
       "commits": [
         {
           "additionalData": "",
           "committer": {
               "date": "1508280564 -0800",
               "name": "Mary Major",
               "email": "mary_major@example.com"
           },
           "author": {
               "date": "1508280564 -0800",
               "name": "Mary Major",
               "email": "mary_major@example.com"
           },
           "commitId": "317f8570EXAMPLE",
           "treeId": "1f330709EXAMPLE",
           "parents": [
               "6e147360EXAMPLE"
           ],
           "message": "Change variable name and add new response element"
       },
       {
           "additionalData": "",
           "committer": {
               "date": "1508280542 -0800",
               "name": "Li Juan",
               "email": "li_juan@example.com"
           },
           "author": {
               "date": "1508280542 -0800",
               "name": "Li Juan",
               "email": "li_juan@example.com"
           },
           "commitId": "4c925148EXAMPLE",
           "treeId": "1f330709EXAMPLE",
           "parents": [
               "317f8570EXAMPLE"
           ],
           "message": "Added new class"
       }   
   }
   ```

### 커밋 지정자에 대한 변경 사항 관련 정보를 보려면
<a name="how-to-view-commit-details-cli-differences"></a>

1. 다음을 지정하여 **aws codecommit get-differences** 명령을 실행합니다.
   + CodeCommit 리포지토리의 이름(`--repository-name` 옵션 사용)
   + 정보를 조회하고 싶은 커밋 지정자. `--after-commit-specifier`만 있으면 됩니다. `--before-commit-specifier`를 지정하지 않으면 현재 `--after-commit-specifier`인 파일이 모두 표시됩니다.

   예를 들어, `MyDemoRepo`이라는 CodeCommit 리포지토리에서 ID가 `317f8570EXAMPLE` 및 `4c925148EXAMPLE`인 커밋들 사이의 차이에 대한 정보를 보려면 다음을 수행합니다.

   ```
   aws codecommit get-differences  --repository-name MyDemoRepo  --before-commit-specifier 317f8570EXAMPLE --after-commit-specifier 4c925148EXAMPLE
   ```

1. 이 명령이 제대로 실행되면 다음 사항이 출력됩니다.
   + 변경 유형(A: 추가, D: 삭제, M: 수정)을 포함한 차이점 목록
   + 파일 변경 유형의 모드
   + 해당 변경 사항이 포함된 Git BLOB 객체의 ID

   다음은 위 예제 명령의 출력 예입니다.

   ```
   {
       "differences": [
           {
               "afterBlob": {
                   "path": "blob.txt",
                   "blobId": "2eb4af3bEXAMPLE",
                   "mode": "100644"
               },
               "changeType": "M",
               "beforeBlob": {
                   "path": "blob.txt",
                   "blobId": "bf7fcf28fEXAMPLE",
                   "mode": "100644"
               }
           }
       ]
   }
   ```

### Git BLOB 객체에 대한 정보 보기
<a name="how-to-view-commit-details-cli-blob"></a>

1. 다음을 지정하여 **aws codecommit get-blob** 명령을 실행합니다.
   + CodeCommit 리포지토리의 이름(`--repository-name` 옵션 사용)
   + Git BLOB의 ID(`--blob-id ` 옵션) 

   예를 들어 `MyDemoRepo`라는 CodeCommit 리포지토리에서 ID가 `2eb4af3bEXAMPLE`인 Git BLOB에 대한 정보를 보려면 다음을 수행합니다.

   ```
   aws codecommit get-blob  --repository-name MyDemoRepo  --blob-id 2eb4af3bEXAMPLE
   ```

1. 이 명령이 제대로 실행되면 다음 사항이 출력됩니다.
   + 대개 파일인 BLOB의 base64 인코딩 콘텐츠

   예를 들어 이전 명령의 실행 결과는 다음과 비슷하게 출력될 수 있습니다.

   ```
   {
       "content": "QSBCaW5hcnkgTGFyToEXAMPLE="
   }
   ```

## 커밋 세부 정보 보기 (Git)
<a name="how-to-view-commit-details-git"></a>

이 단계를 수행하려면 먼저 로컬 리포지토리를 CodeCommit 리포지토리에 연결하고 변경 사항을 커밋한 상태이어야 합니다. 지침은 [리포지토리에 연결](how-to-connect.md) 섹션을 참조하세요.

리포지토리에 대한 가장 최근 커밋의 변경 사항을 표시하려면 **git show** 명령을 실행합니다.

```
git show
```

이 명령을 실행하면 다음과 비슷하게 출력됩니다.

```
commit 4f8c6f9d
Author: Mary Major <mary.major@example.com>
Date:   Mon May 23 15:56:48 2016 -0700

    Added bumblebee.txt

diff --git a/bumblebee.txt b/bumblebee.txt
new file mode 100644
index 0000000..443b974
--- /dev/null
+++ b/bumblebee.txt
@@ -0,0 +1 @@
+A bumblebee, also written bumble bee, is a member of the bee genus Bombus, in the family Apidae.
\ No newline at end of file
```

**참고**  
이 예시부터는 커밋 ID가 축약되어 있습니다. 축약되지 않은 커밋 ID는 표시되지 않습니다.

변경된 사항을 보려면 해당 커밋 ID로 **git show** 명령을 사용합니다.

```
git show 94ba1e60

commit 94ba1e60
Author: John Doe <johndoe@example.com>
Date:   Mon May 23 15:39:14 2016 -0700

    Added horse.txt

diff --git a/horse.txt b/horse.txt
new file mode 100644
index 0000000..080f68f
--- /dev/null
+++ b/horse.txt
@@ -0,0 +1 @@
+The horse (Equus ferus caballus) is one of two extant subspecies of Equus ferus.
```

두 커밋 사이의 차이점을 보려면 다음과 같이 **git diff** 명령을 실행하고 두 커밋 ID를 포함시킵니다.

```
git diff ce22850d 4f8c6f9d
```

이 예시에서 두 커밋 간의 차이점은 두 파일이 추가되었다는 것입니다. 이 명령을 실행하면 다음과 비슷하게 출력됩니다.

```
diff --git a/bees.txt b/bees.txt
new file mode 100644
index 0000000..cf57550
--- /dev/null
+++ b/bees.txt
@@ -0,0 +1 @@
+Bees are flying insects closely related to wasps and ants, and are known for their role in pollination and for producing honey and beeswax.
diff --git a/bumblebee.txt b/bumblebee.txt
new file mode 100644
index 0000000..443b974
--- /dev/null
+++ b/bumblebee.txt
@@ -0,0 +1 @@
+A bumblebee, also written bumble bee, is a member of the bee genus Bombus, in the family Apidae.
\ No newline at end of file
```

Git을 사용해 로컬 리포지토리의 커밋에 대한 세부 정보를 보려면 다음과 같이 **git log** 명령을 실행합니다.

```
git log
```

이 명령이 제대로 실행되면 다음과 비슷하게 출력됩니다.

```
commit 94ba1e60
Author: John Doe <johndoe@example.com>
Date:   Mon May 23 15:39:14 2016 -0700

    Added horse.txt

commit 4c925148
Author: Jane Doe <janedoe@example.com>
Date:   Mon May 22 14:54:55 2014 -0700

    Added cat.txt and dog.txt
```

커밋 ID와 메시지만 표시하려면 다음과 같이 **git log --pretty=oneline** 명령을 실행합니다.

```
git log --pretty=oneline
```

이 명령이 제대로 실행되면 다음과 비슷하게 출력됩니다.

```
94ba1e60 Added horse.txt
4c925148 Added cat.txt and dog.txt
```

다른 옵션들에 대해서는 Git 설명서를 참조하세요.