

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 处理 AWS CodeCommit 仓库中的提交
<a name="commits"></a>

提交是存储库内容以及对该内容进行的更改的快照。每次用户提交和推送更改时，系统都会保存和存储该信息。同样保存和存储的信息还包括：提交更改的用户、提交的日期和时间以及作为提交的一部分所做的更改。您还可以向提交添加标签，以方便识别特定的提交。在中 CodeCommit，你可以：
+ 审查提交。
+ 查看图表中提交的历史记录。
+ 将某个提交与其父级或另一个说明符进行比较。
+ 向您的提交中添加评论并回复他人发表的评论。

![\[向提交中已更改的行添加评论。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-addlinecomment.png)


必须先将本地计算机设置为连接到 CodeCommit 存储库，然后才能将提交推送到存储库。有关最简单的方法的说明，请参阅[适用于使用 Git 凭证的 HTTPS 用户](setting-up-gc.md)。

有关使用存储库其他方面的信息 CodeCommit，请参阅[使用存储库](repositories.md)、[使用文件](files.md)、[使用拉取请求](pull-requests.md)[使用分支](branches.md)、和[使用用户首选项](user-preferences.md)。

**Topics**
+ [在中创建提交 AWS CodeCommit](how-to-create-commit.md)
+ [在中查看提交详情 AWS CodeCommit](how-to-view-commit-details.md)
+ [比较中的提交 AWS CodeCommit](how-to-compare-commits.md)
+ [评论中的提交 AWS CodeCommit](how-to-commit-comment.md)
+ [在中创建 Git 标签 AWS CodeCommit](how-to-create-tag.md)
+ [在中查看 Git 标签的详细信息 AWS CodeCommit](how-to-view-tag-details.md)
+ [删除中的 Git 标签 AWS CodeCommit](how-to-delete-tag.md)

# 在中创建提交 AWS CodeCommit
<a name="how-to-create-commit"></a>

在为新存储库创建第一个提交时，使用 AWS CLI 和**put-file**命令。这将创建第一个提交，并让您可以为新存储库创建和指定默认分支。您可以使用 Git 或 AWS CLI 在 CodeCommit 仓库中创建提交。如果本地存储库已连接到 CodeCommit 存储库，则可以使用 Git 将提交从本地存储库推送到存储库。 CodeCommit 要直接在 CodeCommit 控制台中创建提交，请参阅[在 AWS CodeCommit 存储库中创建或添加文件](how-to-create-file.md)和[编辑 AWS CodeCommit 存储库中文件的内容](how-to-edit-file.md)。

**注意**  
作为最佳实践，我们建议您使用支持的最新版本的 AWS CLI、Git 和其他软件。如果您使用 AWS CLI，请确保安装了最新版本，以确保您使用的版本包含该`create-commit`命令。

**Topics**
+ [使用创建仓库的第一个提交 AWS CLI](#how-to-create-first-commit)
+ [使用 Git 客户端创建提交](#how-to-create-commit-git)
+ [使用创建提交 AWS CLI](#how-to-create-commit-cli)

## 使用创建仓库的第一个提交 AWS CLI
<a name="how-to-create-first-commit"></a>

您可以使用 AWS CLI 和`put-file`命令为存储库创建您的第一个提交。使用 **put-file** 会创建第一个提交，该分支会将文件添加到空存储库，并创建一个具有您指定的名称的分支。它会将新分支指定为存储库的默认分支。

**注意**  
要将 AWS CLI 命令与一起使用 CodeCommit，请安装 AWS CLI。有关更多信息，请参阅 [命令行参考](cmd-ref.md)。<a name="create-first-commit"></a>

## 要为存储库创建第一个提交，请使用 AWS CLI


1. 在本地计算机上，创建要作为第一个文件添加到 CodeCommit存储库的文件。一个常见做法是创建一个 `README.md` markdown 文件，向其他存储库用户说明此存储库的用途。如果您包含`README.md`文件，则该文件的内容将自动显示在 CodeCommit控制台中存储库的 “**代码**” 页面的底部。

1. 在终端或命令行中，运行 **put-file** 命令，并指定：
   + 要将第一个文件添加到的存储库的名称。
   + 要创建为默认分支的分支的名称。
   + 文件的本地位置。用于此位置的语法取决于您的本地操作系统。
   + 要添加的文件的名称，包括更新的文件在存储库中的存储路径。
   + 您希望与此文件关联的用户名和电子邮件。
   + 一条提交消息，说明您为什么添加此文件。

   用户名、电子邮件地址和提交消息是可选的，但可帮助其他用户了解执行更改的人员以及原因。如果您不提供用户名，则 CodeCommit 默认使用您的 IAM 用户名或控制台登录名的派生形式作为作者姓名。

   例如，要将名为 base 6 *README.md* 的编码文件内容为示例的文件*MyDemoRepo*添加到名为以下分支的存储库中：*development*

   ```
   aws codecommit put-file --repository-name MyDemoRepo --branch-name development --file-path README.md --file-content "EXAMPLE0123456789example0123456789EXAMPLE1" --name "Mary Major" --email "mary_major@example.com" --commit-message "I added a quick readme for our new team repository."
   ```

   如果成功，该命令返回类似以下内容的输出：

   ```
   {
       "commitId": "724caa36EXAMPLE",
       "blobId": "a8a94062EXAMPLE",
       "treeId": "08b2fc73EXAMPLE"
   }
   ```

## 使用 Git 客户端创建提交
<a name="how-to-create-commit-git"></a>

您可以使用安装在本地计算机上的 Git 客户端创建提交，然后将这些提交推送到 CodeCommit 仓库。

1. 完成前提条件，包括[设置 ](setting-up.md)。
**重要**  
如果您尚未完成设置，则无法使用 Git 连接或提交到存储库。

1. 确保将在正确的分支中创建提交。要查看可用分支的列表并确认您当前设置使用的分支，请运行 **git branch**。这会显示所有分支。当前分支旁边会显示星号 (`*`)。要切换到其他分支，请运行 **git checkout *branch-name***。如果这是您的第一个提交，请运行 **git config ** 命令，将 Git 客户端配置为使用您要用于该分支的名称创建初始分支。例如，如果你想让默认分支的名称为*development*：

   ```
   git config --local init.defaultBranch development
   ```
**提示**  
此命令仅在 Git v.2.28 及更高版本中可用。  
您也可以运行以下命令，将所有新创建的存储库的默认分支名称设置为 **development**：  

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

1. 对分支做出更改 (例如，添加、修改或删除文件)。

   例如，在本地存储库中创建名为 `bird.txt` 的文件并写入以下文本：

   ```
   bird.txt
   --------
   Birds (class Aves or clade Avialae) are feathered, winged, two-legged, warm-blooded, egg-laying vertebrates.
   ```

1. 运行 **git status**，这应会指示 `bird.txt` 尚未包含在任何待处理提交中：

   ```
   ...        
   Untracked files:
     (use "git add <file>..." to include in what will be committed)
           
           bird.txt
   ```

1. 运行 **git add bird.txt** 将新文件包含在待处理提交中。

1. 如果您再次运行 **git status**，应显示与以下内容类似的输出。它指示 `bird.txt` 现已加入到待处理提交中，或已暂存并等待提交：

   ```
   ...
   Changes to be committed:
     (use "git reset HEAD <file>..." to unstage)
       
           new file:   bird.txt
   ```

1. 要完成提交，请运行 **git commit** 并指定 `-m` 选项（例如，** git commit -m "*Adding bird.txt to the repository.*"**）。`-m` 选项用于创建提交消息。

1. 如果您再次运行 **git status**，应显示与以下内容类似的输出。它表示提交已准备好从本地存储库推送到 CodeCommit 存储库：

   ```
   ...    
   nothing to commit, working directory clean
   ```

1. 在将已完成的提交从本地存储库推送到 CodeCommit 存储库之前，您可以通过运行来查看正在推送的内容**git diff --stat *remote-name*/*branch-name***，其中*remote-name*是本地 CodeCommit 存储库使用的昵称以及*branch-name*要比较的分支的名称。
**提示**  
要获取别名，请运行 **git remote**。要获取分支名称列表，请运行 **git branch**。当前分支旁边会显示星号 (`*`)。您也可以运行 **git status** 来获取当前分支的名称。
**注意**  
如果您克隆了存储库，则从本地存储库的角度来看，*remote-name*这不是存储库的 CodeCommit 名称。克隆存储库时，会自动设置*remote-name*为`origin`。

   例如，**git diff --stat origin/main** 将显示类似以下内容的输出：

   ```
   bird.txt | 1 +
   1 file changed, 1 insertion(+)
   ```

   输出假设您已经将本地存储库连接到 CodeCommit 存储库。（有关说明，请参阅[连接存储库](how-to-connect.md)。）

1. 当你准备好将提交从本地存储库推送到 CodeCommit 存储库时，运行**git push *remote-name* *branch-name***，其中*remote-name*是本地存储库使用的昵称，*branch-name*也是要推送到 CodeCommit 存储库的分支的名称。 CodeCommit 

   例如，运行 **git push origin main** 将显示类似以下内容的输出：

   对于 HTTPS：

   ```
   Counting objects: 7, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (4/4), done.
   Writing objects: 100% (5/5), 516 bytes | 0 bytes/s, done.
   Total 5 (delta 2), reused 0 (delta 0)
   remote:
   To https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
       b9e7aa6..3dbf4dd main -> main
   ```

   对于 SSH：

   ```
   Counting objects: 7, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (4/4), done.
   Writing objects: 100% (5/5), 516 bytes | 0 bytes/s, done.
   Total 5 (delta 2), reused 0 (delta 0)
   remote:
   To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
       b9e7aa6..3dbf4dd main -> main
   ```
**提示**  
如果向 **git push** 添加 `-u` 选项（例如，**git push -u origin main**），则以后只需运行 **git push**，因为已设置了上游跟踪信息。要获取上游跟踪信息，请运行 **git remote show *remote-name***（例如，**git remote show origin**）。

有关更多选项，请参阅 Git 文档。

## 使用创建提交 AWS CLI
<a name="how-to-create-commit-cli"></a>

您可以使用 AWS CLI 和`create-commit`命令在指定分支的尖端为存储库创建提交。您还可以创建未引用的合并提交来表示合并两个提交说明符的结果。有关更多信息，请参阅[创建非引用提交](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit)。

**注意**  
要将 AWS CLI 命令与一起使用 CodeCommit，请安装 AWS CLI。有关更多信息，请参阅 [命令行参考](cmd-ref.md)。<a name="create-commit"></a>

**创建提交**

1. 在本地计算机上，进行要提交到 CodeCommit 存储库的更改。

1. 在终端或命令行中，运行 **create-commit** 命令，并指定：
   + 要将更改提交到的存储库。
   + 要将更改提交到的分支。
   + 对该分支进行的最新提交的完整提交 ID，也称为顶端或头提交或父提交 ID。
   + 如果所做的更改删除了这些文件夹的内容，是否保留任何空文件夹。默认情况下，此值为 false。
   + 有关要添加、更改或删除的文件的信息。
   + 希望与这些更改关联的用户名和电子邮件。
   + 一条提交消息，说明您进行这些更改的原因。

   用户名、电子邮件地址和提交消息是可选的，但可帮助其他用户知道更改的执行者及原因。如果您不提供用户名，则 CodeCommit 默认使用您的 IAM 用户名或控制台登录名的派生形式作为作者姓名。

   例如，为存储库创建提交，将`README.md`文件添加到分*main*支*MyDemoRepo*中名为的存储库中。该文件采用 Base64 格式，内容为“Welcome to our team repository\$1”：

   ```
   aws codecommit create-commit --repository-name MyDemoRepo --branch-name main --parent-commit-id 4c925148EXAMPLE --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
   ```
**提示**  
要获取父提交 ID，请运行 [get-branch](how-to-view-branch-details.md#how-to-view-branch-details-cli-details) 命令。

   如果成功，该命令返回类似以下内容的输出：

   ```
   {
       "commitId": "4df8b524-EXAMPLE",
       "treeId": "55b57003-EXAMPLE",
       "filesAdded": [
           {
               "blobId": "5e1c309dEXAMPLE",
               "absolutePath": "meeting.md",
               "fileMode": "NORMAL"
           }
       ],
       "filesDeleted": [],
       "filesUpdated": []
   }
   ```

   要创建对名为*file1.py*和的文件进行更改的提交*file2.txt*，请将文件从重命名*picture.png*为*image1.png*并将其从名为、的目录移*pictures*至名为*images*、的目录，然后删除名为的存储库*ExampleSolution.py*中名为的文件，该分支*MyDemoRepo*上名为，*MyFeatureBranch*其最新提交 ID 为：*4c925148EXAMPLE*

   ```
   aws codecommit create-commit --repository-name MyDemoRepo --branch-name MyFeatureBranch --parent-commit-id 4c925148EXAMPLE --author-name "Saanvi Sarkar"
    --email "saanvi_sarkar@example.com" --commit-message "I'm creating this commit to update a variable name in a number of files."
    --keep-empty-folders false  --put-files '{"filePath": "file1.py", "fileMode": "EXECUTABLE", "fileContent": "bucket_name = sys.argv[1] region = sys.argv[2]"}'
   '{"filePath": "file2.txt", "fileMode": "NORMAL", "fileContent": "//Adding a comment to explain the variable changes in file1.py"}' '{"filePath": "images/image1.png",
   "fileMode": "NORMAL", "sourceFile": {"filePath": "pictures/picture.png", "isMove": true}}' --delete-files filePath="ExampleSolution.py"
   ```
**注意**  
根据您的操作系统，**--put-files** 段的语法略有不同。以上示例针对 Linux、macOS 或 Unix 用户和具有 Bash 仿真器的 Windows 用户进行了优化。使用命令行或 Powershell 的 Windows 用户应使用适合这些系统的语法。

   如果成功，该命令返回类似以下内容的输出：

   ```
   {
      "commitId": "317f8570EXAMPLE",
      "treeId": "347a3408EXAMPLE",
      "filesAdded": [
           {
           "absolutePath": "images/image1.png",
           "blobId": "d68ba6ccEXAMPLE",
           "fileMode": "NORMAL"
           }
       ],
       "filesUpdated": [
           {
           "absolutePath": "file1.py",
           "blobId": "0a4d55a8EXAMPLE",
           "fileMode": "EXECUTABLE"
           },
           {
           "absolutePath": "file2.txt",
           "blobId": "915766bbEXAMPLE",
           "fileMode": "NORMAL"
           }
       ],
       "filesDeleted": [
           {
           "absolutePath": "ExampleSolution.py",
           "blobId": "4f9cebe6aEXAMPLE",
           "fileMode": "EXECUTABLE"
           },
           {
           "absolutePath": "pictures/picture.png",
           "blobId": "fb12a539EXAMPLE",
           "fileMode": "NORMAL"
           }
       ]
   }
   ```

# 在中查看提交详情 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/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在 **Repositories (存储库)**中，选择要查看其提交历史记录的存储库。

1. 在导航窗格中，选择 **Commits**。在提交历史记录视图中，系统按提交日期的反向时间顺序显示存储库默认分支中的提交的历史记录。日期和时间用协调世界时 (UTC) 表示。您可以按照如下方式查看不同分支的提交历史记录：选择视图选择器按钮，然后从列表中选择分支。如果您在存储库中使用了标签，则可通过在视图选择器按钮中选择特定标签来查看具有该标签的提交及其父级。  
![\[控制台中的提交视图\]](http://docs.aws.amazon.com/zh_cn/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，请复制然后将其粘贴到文本编辑器或其他位置。要复制它，请选择 **Copy ID (复制 ID)**。
   + 要查看提交时的代码，请选择 **Browse (浏览)**。**Code** 视图中显示做出该提交时存储库中的内容。视图选择器按钮显示缩写的提交 ID，而不是分支或标签。

### 查看存储库的提交历史记录图表
<a name="how-to-view-commit-details-console-visualizer"></a>

您可以查看对存储库做出的提交的图表。**Commit Visualizer** 视图是一个有向无环图 (DAG)，它表示对存储库的某个分支做出的所有提交。该图形表示可以帮助您了解添加或合并提交及相关功能的时间。它还能帮助您确定某项更改相对其他更改的执行时间。

**注意**  
在提交图表中，使用快速转发方法合并的提交不会以单独的行显示。

**查看提交图表**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在 **Repositories (存储库)**中，选择要查看其提交图表的存储库。

1. 在导航窗格中，选择 **Commits (提交)**，然后选择 **Commit visualizer (提交可视化工具)** 选项卡。  
![\[控制台中的存储库图形视图\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-cv-complex1.png)

   在提交图表中，每个提交消息的缩写提交 ID 和主题都显示在图表中所示点的旁边。
**注意**  
图表在一页上最多可显示 35 个分支。如果分支数超过 35 个，图表会变得太过复杂而无法显示。您可通过以下两种方法简化视图：  
使用视图选择器按钮显示特定分支的图表。
将完整的提交 ID 粘贴到搜索框中以呈现该提交的图表。

1. 要呈现提交的新图表，请从图表中选择与该提交对应的点。视图选择器按钮更改为缩写的提交 ID。  
![\[呈现的特定提交的新图表\]](http://docs.aws.amazon.com/zh_cn/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 或其他完全限定引用，例如提交 IDs）的更改信息，请运行**[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 存储库`317f8570EXAMPLE`中查看 ID 为的提交的信息：

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

1. 如果成功，该命令的输出包括以下内容：
   + 有关提交作者的信息（如 Git 中所配置），包括时间戳格式的日期和协调世界时 (UTC) 偏移量。
   + 有关提交者的信息（如 Git 中所配置），包括时间戳格式的日期和 UTC 偏移量。
   + 提交所在的 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** 选项）。

   例如，要在名为的存储库中查看有关源分支*bugfix-bug1234*的合并提交的信息，目标分支*main*使用*THREE\$1WAY\$1MERGE*策略命名*MyDemoRepo*：

   ```
   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`选项）。
   + 要查看其 IDs 信息的每个提交的完整提交列表。

   例如，要在名为`MyDemoRepo`：的 CodeCommit 存储库`4c925148EXAMPLE`中查看有关使用 IDs`317f8570EXAMPLE`和的提交的信息：

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

1. 如果成功，该命令的输出包括以下内容：
   + 有关提交作者的信息（如 Git 中所配置），包括时间戳格式的日期和协调世界时 (UTC) 偏移量。
   + 有关提交者的信息（如 Git 中所配置），包括时间戳格式的日期和 UTC 偏移量。
   + 存在提交 IDs 的 Git 树中的。
   + 父 IDs 提交的提交。
   + 提交消息。

   下面是前面示例命令的一些示例输出：

   ```
   {
       "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 存储库`4c925148EXAMPLE`中查看有关使用 IDs`317f8570EXAMPLE`和的提交之间的区别的信息：

   ```
   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 仓库`2eb4af3bEXAMPLE`中查看 ID 为的 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
```

**注意**  
在本示例和以下示例中，commit IDs 被缩写了。未显示完整的提交 IDs 。

要查看发生的更改，请使用 **git show** 命令并指定提交 ID：

```
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**命令并包含两个提交 IDs。

```
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
```

要仅显示提交 IDs 和消息，请运行以下**git log --pretty=oneline**命令：

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

如果成功，该命令产生类似以下内容的输出：

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

有关更多选项，请参阅 Git 文档。

# 比较中的提交 AWS CodeCommit
<a name="how-to-compare-commits"></a>

您可以使用 CodeCommit 控制台查看 CodeCommit存储库中提交说明符之间的区别。您可以快速查看提交与其父级之间的差异。您还可以比较任意两个引用，包括提交 IDs。

**Topics**
+ [比较提交与其父级](#how-to-compare-commits-parent)
+ [比较任意两个提交说明符](#how-to-compare-commits-compare)

## 比较提交与其父级
<a name="how-to-compare-commits-parent"></a>

您可以快速查看提交与其父级之间的差异，从而审核提交消息、提交者和更改的内容。

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**页面上，选择您要查看提交与其父级之间差异的存储库。

1. 在导航窗格中，选择 **Commits**。

1. 选择列表中任意提交的缩写提交 ID。视图会发生变化以显示此提交的详细信息，包括它与其父提交之间的差异。  
![\[选择缩写提交 ID 可显示此提交与其父级之间的差异\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commit-changes1.png)

   您可以通过并排 (**Split** 视图) 或内联 (**Unified** 视图) 方式显示更改。也可以隐藏或显示空格更改。您还可以添加评论。有关更多信息，请参阅 [评论提交](how-to-commit-comment.md)。
**注意**  
每当您更改用于查看代码和其他控制台设置的首选项时，都会将它们保存为浏览器 Cookie。有关更多信息，请参阅 [使用用户首选项](user-preferences.md)。  
![\[在统一视图中显示的更改，隐藏了空格更改\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commit-changes2c.png)  
![\[在拆分视图中显示的更改，对行进行了评论\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)
**注意**  
 根据行结束样式、代码编辑器及其他因素的不同，您可能会看到整行的添加或删除，而不是一行中的具体更改。详细程度与 **git show** 或 **git diff** 命令的返回内容一致。

1. 要将提交与其父级进行比较，请从**提交可视化工具**选项卡中选择缩写的提交 ID。将显示提交详细信息，包括提交与其父级之间的更改。

## 比较任意两个提交说明符
<a name="how-to-compare-commits-compare"></a>

您可以在 CodeCommit 控制台中查看任意两个提交说明符之间的区别。提交说明符是引用，例如分支、标签和提交 IDs。

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**页面上，选择要比较提交、分支或已标记提交的存储库。

1. 在导航窗格中，选择**提交**，然后选择**比较提交**。  
![\[比较任意两个提交说明符\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-compare-1.png)

1. 使用框比较两个提交说明符。
   + 要比较分支的提示，请从列表中选择分支名称。这会从分支中选择最近的提交进行比较。
   + 要比较与特定标签关联的提交，请从列表中选择标签名称（如果有）。这会选择已标记的提交进行比较。
   + 要比较特定提交，请在框中输入或粘贴提交 ID。要获取完整的提交 ID，请在导航栏中选择 **Commits**，然后从列表中复制提交 ID。在 **Compare commits (比较提交)** 页面上，将完整的提交 ID 粘贴在文本框中，然后选择 **Use commit ID (使用提交 ID)**。  
![\[比较分支、标签或提交 IDs\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-compare-2.png)

1. 选中说明符后，选择 **Compare**。  
![\[两个分支之间的比较视图\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-compare-branches.png)

   您可以通过并排 (**Split** 视图) 或内联 (**Unified** 视图) 方式显示差别。也可以隐藏或显示空格更改。

1. 要清除您的比较选择，请选择**取消**。

# 评论中的提交 AWS CodeCommit
<a name="how-to-commit-comment"></a>

您可以使用 CodeCommit 控制台对仓库中的提交进行评论，以及查看和回复其他用户对提交的评论。这可以帮助您讨论在存储库中进行的更改，包括：
+ 进行更改的原因。
+ 是否需要进行多处更改。
+ 是否应将更改合并到其他分支中。

您可以对整个提交、提交中的某个文件或文件中特定的行或更改发表评论。您也可以通过以下方式链接到一行代码：选择一行，然后在浏览器中复制生成的 URL。

**注意**  
为了获得最佳结果，请在以 IAM 用户身份登录时使用评论功能。评论功能并未针对用根账户凭证、联合访问或临时凭证登录的用户进行优化。

**Topics**
+ [查看对存储库中的提交的评论](#how-to-commit-comment-view-console)
+ [在存储库中添加和回复对提交的评论](#how-to-commit-comment-add-console)
+ [查看、添加、更新和回复评论 (AWS CLI)](#how-to-commit-comment-cli)

## 查看对存储库中的提交的评论
<a name="how-to-commit-comment-view-console"></a>

您可以使用 CodeCommit 控制台查看对提交的评论。

**查看对提交进行的评论**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**中，选择要查看对其提交进行的评论的存储库。

1. 在导航窗格中，选择 **Commits**。选择您要查看任何评论的提交的提交 ID。

   该提交的页面将与任何评论一起显示。

## 在存储库中添加和回复对提交的评论
<a name="how-to-commit-comment-add-console"></a>

您可以使用 CodeCommit 控制台为提交和父提交的比较或两个指定提交之间的比较添加注释。您还可以使用表情符号和/或您自己的评论来回复评论。

### 添加和回复对提交的评论（控制台）
<a name="how-to-commit-comment-add-cpage"></a>

您可以使用文本和表情符号添加和回复对提交的评论。您的评论和表情符号将标记为属于用于登录控制台的 IAM 用户或角色。

**添加和回复对提交进行的评论**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**中，选择要在其中对提交进行评论的存储库。

1. 在导航窗格中，选择 **Commits**。选择您要在其中添加或回复评论的提交的提交 ID。

   该提交的页面将与任何评论一起显示。

1. 要添加评论，请执行以下操作之一：
   + 要添加一般评论，请在**对更改的评论**中输入评论，然后选择**保存**。您可以使用 [Markdown](https://en.wikipedia.org/wiki/Markdown)，也可以纯文本格式输入评论。  
![\[对提交中更改的一般评论。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-changecomment.png)
   + 要向提交中的文件添加评论，请找到该文件的名称。选择**对文件的评论**，输入评论，然后选择**保存**。  
![\[对提交中的文件添加评论。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-addfilecomment.png)
   + 要向提交中的已更改行添加评论，请转到显示更改的行。选择评论气泡 ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commentbubble.png)，输入评论，然后选择**保存**。  
![\[对提交中的行添加评论。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-addlinecomment.png)
**注意**  
您可以在保存评论后编辑它。您也可以删除其内容。评论将保留一条消息，说明内容已被删除。请考虑在保存您的评论之前为该评论使用**预览 markdown** 模式。

1. 要回复对提交的评论，请选择**回复**。要使用表情符号回复评论，请从列表中选择所需的表情符号。每条评论只能选择一个表情符号。如果要更改表情符号反应，请从列表中选择其他表情符号，或选择**无**以删除反应。  
![\[在评论中添加回复和表情符号反应。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

### 在比较两个提交说明符时添加和回复评论
<a name="how-to-commit-comment-console-compare"></a>

您可以向两个分支、标签或提交之间的比较添加评论。

**在比较提交说明符时添加或回复评论**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**中，选择要比较提交、分支或已标记提交的存储库。

1. 在导航窗格中，选择**提交**，然后选择**比较提交**选项卡。  
![\[比较任意两个提交说明符\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-compare-1.png)

1. 使用**目标**和**源**字段来比较两个提交说明符。使用下拉列表或粘贴提交 IDs。选择 **Compare**。  
![\[将提交 ID 与分支比较时的示例结果\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-compare-4.png)

1. 执行以下一个或多个操作：
   + 要添加对文件或行的评论，请选择评论气泡 ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-commentbubble.png)。
   + 要添加对所比较更改的一般评论，请转到 **Comments on changes**。

## 查看、添加、更新和回复评论 (AWS CLI)
<a name="how-to-commit-comment-cli"></a>

您可以通过运行以下命令来查看、添加、回复、更新和删除评论内容：
+ 要查看对两个提交之间的比较进行的评论，请运行 **[get-comments-for-compared-commit](#how-to-commit-comment-cli-get-comments)**。
+ 要查看有关评论的详细信息，请运行 [**get-comment**](#how-to-commit-comment-cli-get-comment-info)。
+ 要删除您创建的评论的内容，请运行 [**delete-comment-content**](#how-to-commit-comment-cli-commit-delete)。
+ 要创建对两个提交之间的比较进行的评论，请运行 [**post-comment-for-compared-commit**](#how-to-commit-comment-cli-comment)。
+ 要更新评论，请运行 [**update-comment**](#how-to-commit-comment-cli-commit-update)。
+ 要回复评论，请运行 [**post-comment-reply**](#how-to-commit-comment-cli-commit-reply)。
+ 要使用表情符号回复评论，请运行 [**put-comment-reaction**](#how-to-commit-comment-cli-commit-reply-emoji)。
+ 要查看对评论的表情符号反应，请运行 [**get-comment-reactions**](#how-to-commit-comment-cli-commit-emoji-view)。

### 查看对提交进行的评论
<a name="how-to-commit-comment-cli-get-comments"></a>

1. 运行 **get-comments-for-compared-commit** 命令，并指定：
   +  CodeCommit 存储库的名称（带`--repository-name`选项）。
   + “after”提交的完整提交 ID，用于建立比较的方向性（使用 `--after-commit-id option`）。
   + “before”提交的完整提交 ID，用于建立比较的方向性（使用 `--before-commit-id` 选项）。
   + （可选）要返回下一批结果的枚举令牌（使用 `--next-token` 选项）。
   + (可选) 一个用于限制返回的结果数的非负整数 (使用 `--max-results` 选项)。

   例如，要查看对名为 *MyDemoRepo* 的存储库中两个提交之间的比较做出的评论，请运行以下命令：

   ```
   aws codecommit get-comments-for-compared-commit --repository-name MyDemoRepo --before-commit-id 6e147360EXAMPLE --after-commit-id 317f8570EXAMPLE
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   {
      "commentsForComparedCommitData": [ 
         { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "317f8570EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "6e147360EXAMPLE",
            "comments": [ 
               { 
                  "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
                  "clientRequestToken": "123Example",
                  "commentId": "ff30b348EXAMPLEb9aa670f",
                  "content": "Whoops - I meant to add this comment to the line, not the file, but I don't see how to delete it.",
                  "creationDate": 1508369768.142,
                  "deleted": false,
                  "CommentId": "123abc-EXAMPLE",
                  "lastModifiedDate": 1508369842.278,
                  "callerReactions": [],
                  "reactionCounts": 
                   {
                     "SMILE" : 6,
                     "THUMBSUP" : 1
                   }
               },
               {
                  "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
                  "clientRequestToken": "123Example",
                  "commentId": "553b509bEXAMPLE56198325",
                  "content": "Can you add a test case for this?",
                  "creationDate": 1508369612.240,
                  "deleted": false,
                  "commentId": "456def-EXAMPLE",
                  "lastModifiedDate": 1508369612.240,
                  "callerReactions": [],
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 2
                   }
                }
            ],
            "location": { 
               "filePath": "cl_sample.js",
               "filePosition": 1232,
               "relativeFileVersion": "after"
            },
            "repositoryName": "MyDemoRepo"
         }
      ],
      "nextToken": "exampleToken"
   }
   ```

### 查看提交评论的详细信息
<a name="how-to-commit-comment-cli-get-comment-info"></a>

1. 运行 **get-comment** 命令，并指定系统生成的评论 ID。例如：

   ```
   aws codecommit get-comment --comment-id ff30b348EXAMPLEb9aa670f
   ```

1. 如果成功，该命令返回类似以下内容的输出：

   ```
   {
      "comment": { 
         "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
         "clientRequestToken": "123Example",
         "commentId": "ff30b348EXAMPLEb9aa670f",
         "content": "Whoops - I meant to add this comment to the line, but I don't see how to delete it.",
         "creationDate": 1508369768.142,
         "deleted": false,
         "commentId": "",
         "lastModifiedDate": 1508369842.278,
         "callerReactions": [],
         "reactionCounts": 
            {
              "SMILE" : 6,
              "THUMBSUP" : 1
            }
      }
   }
   ```

### 删除提交评论的内容
<a name="how-to-commit-comment-cli-commit-delete"></a>

1. 运行 **delete-comment-content** 命令，并指定系统生成的评论 ID。例如：

   ```
   aws codecommit delete-comment-content --comment-id ff30b348EXAMPLEb9aa670f
   ```
**注意**  
只有在应用了 AWSCodeCommitFullAccess 策略或将`DeleteCommentContent`权限设置为 “**允**许” 的情况下，您才能删除评论的内容。

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   {
      "comment": { 
         "creationDate": 1508369768.142,  
         "deleted": true,
         "lastModifiedDate": 1508369842.278,
         "clientRequestToken": "123Example",
         "commentId": "ff30b348EXAMPLEb9aa670f",
         "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
         "callerReactions": [],
         "reactionCounts": 
            {
              "CLAP" : 1
            }
      }
   }
   ```

### 创建提交评论
<a name="how-to-commit-comment-cli-comment"></a>

1. 运行 **post-comment-for-compared-commit** 命令，并指定：
   +  CodeCommit 存储库的名称（带`--repository-name`选项）。
   + “after”提交的完整提交 ID，用于建立比较的方向性（使用 `--after-commit-id ` 选项）。
   + “before”提交的完整提交 ID，用于建立比较的方向性（使用 `--before-commit-id` 选项）。
   + 客户端生成的唯一等幂令牌（使用 **--client-request-token** 选项）。
   + 您的评论的内容（使用 **--content** 选项）。
   + 有关评论放置位置信息的列表，包括：
     + 所比较文件的名称，包括其扩展名和子目录（如果有，则使用 **filePath** 属性）。
     + 在比较文件中更改的行号（使用 **filePosition** 属性）。
     + 对更改的评论在源分支与目标分支之间比较“之前”还是“之后”（使用 **relativeFileVersion** 属性）。

   例如，在比较名为*MyDemoRepo*：*"Can you add a test case for this?"*的存储库中的两个提交时，要添加对*cl\$1sample.js*文件变更的注释：

   ```
   aws codecommit post-comment-for-compared-commit --repository-name MyDemoRepo --before-commit-id 317f8570EXAMPLE --after-commit-id 5d036259EXAMPLE --client-request-token 123Example --content "Can you add a test case for this?" --location filePath=cl_sample.js,filePosition=1232,relativeFileVersion=AFTER   
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "317f8570EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "6e147360EXAMPLE",
            "comment": {
                  "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
                  "clientRequestToken": "",
                  "commentId": "553b509bEXAMPLE56198325",
                  "content": "Can you add a test case for this?",
                  "creationDate": 1508369612.203,
                  "deleted": false,
                  "commentId": "abc123-EXAMPLE",
                  "lastModifiedDate": 1508369612.203,
                  "callerReactions": [],
                  "reactionCounts": []
                },
                "location": { 
                  "filePath": "cl_sample.js",
                  "filePosition": 1232,
                  "relativeFileVersion": "AFTER"
                },
            "repositoryName": "MyDemoRepo"
    }
   ```

### 更新提交评论
<a name="how-to-commit-comment-cli-commit-update"></a>

1. 运行 **update-comment** 命令，并指定要替换任何现有内容的系统生成的评论 ID 和内容。

   例如，要将内容添加到 ID *"Fixed as requested. I'll update the pull request."* 为的评论中，请执行*442b498bEXAMPLE5756813*以下操作：

   ```
   aws codecommit update-comment --comment-id 442b498bEXAMPLE5756813 --content "Fixed as requested. I'll update the pull request."  
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   { 
       "comment": {
           "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
           "clientRequestToken": "",
           "commentId": "442b498bEXAMPLE5756813",
           "content": "Fixed as requested. I'll update the pull request.",
           "creationDate": 1508369929.783,
           "deleted": false,
           "lastModifiedDate": 1508369929.287,
           "callerReactions": [],
           "reactionCounts": 
             {
               "THUMBSUP" : 2
             }
       }
    }
   ```

### 回复提交评论
<a name="how-to-commit-comment-cli-commit-reply"></a>

1. 要在拉取请求中发布对评论的回复，请运行 **post-comment-reply** 命令，并且指定：
   + 要回复的评论的系统生成的 ID（使用 **--in-reply-to** 选项）。
   + 客户端生成的唯一等幂令牌（使用 **--client-request-token** 选项）。
   + 您的回复的内容（使用 **--content** 选项）。

    例如，要将系统生成的 ID 的回复*"Good catch. I'll remove them."*添加到评论中，请执行以下操作：*abcd1234EXAMPLEb5678efgh*

   ```
   aws codecommit post-comment-reply --in-reply-to abcd1234EXAMPLEb5678efgh --content "Good catch. I'll remove them." --client-request-token 123Example
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   { 
       "comment": {
           "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
           "clientRequestToken": "123Example",
           "commentId": "442b498bEXAMPLE5756813",
           "content": "Good catch. I'll remove them.",
           "creationDate": 1508369829.136,
           "deleted": false,
           "CommentId": "abcd1234EXAMPLEb5678efgh",
           "lastModifiedDate": 150836912.221,
           "callerReactions": [],
           "reactionCounts": []
       }
    }
   ```

### 使用表情符号回复对提交的评论
<a name="how-to-commit-comment-cli-commit-reply-emoji"></a>

1. 要使用表情符号回复拉取请求中的评论，或者要更改表情符号反应的值，请运行 **put-comment-reaction** 命令，指定以下内容：
   + 要使用表情符号回复的评论的系统生成的 ID。
   + 要添加或更新的反应的值。可接受的值包括支持的表情符号、简码和 Unicode 值。<a name="emoji-reaction-table"></a>

   中的表情符号支持以下值： CodeCommit  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/how-to-commit-comment.html)

    例如，要将系统生成的 ID *:thumbsup:* 为的表情符号添加到评论中：*abcd1234EXAMPLEb5678efgh*

   ```
   aws codecommit put-comment-reaction --comment-id abcd1234EXAMPLEb5678efgh --reaction-value :thumbsup: 
   ```

1. 如果成功，此命令不会产生任何输出。

### 查看对评论的表情符号反应
<a name="how-to-commit-comment-cli-commit-emoji-view"></a>

1. 要查看对评论的表情符号反应（包括使用这些表情符号做出了反应的用户），请运行 **get-comment-reactions** 命令，指定评论的系统生成的 ID。

    例如，要查看表情符号对评论的反应，系统生成的 ID 为*abcd1234EXAMPLEb5678efgh*：

   ```
   aws codecommit get-comment-reactions --comment-id abcd1234EXAMPLEb5678efgh 
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   {
       "reactionsForComment": {
           [
              {
                   "reaction": {
                       "emoji:"👍",
                       "shortCode": "thumbsup",
                       "unicode": "U+1F44D"
                   },
                   "users": [
                       "arn:aws:iam::123456789012:user/Li_Juan",
                       "arn:aws:iam::123456789012:user/Mary_Major",
                       "arn:aws:iam::123456789012:user/Jorge_Souza"
                   ]
               },
               {
                   "reaction": {
                       "emoji": "👎",
                       "shortCode": "thumbsdown",
                       "unicode": "U+1F44E"
                   },
                   "users": [
                       "arn:aws:iam::123456789012:user/Nikhil_Jayashankar"
                   ]
               },
               {
                   "reaction": {
                       "emoji": "😕",
                       "shortCode": "confused",
                       "unicode": "U+1F615"
                   },
                   "users": [
                       "arn:aws:iam::123456789012:user/Saanvi_Sarkar"
                   ]
               }
           ]
       }
   }
   ```

# 在中创建 Git 标签 AWS CodeCommit
<a name="how-to-create-tag"></a>

您可以使用 Git 标签通过标签来标记提交，以帮助其他存储库用户了解其重要性。要在 CodeCommit 仓库中创建 Git 标签，您可以使用连接到仓库的本地 CodeCommit 存储库中的 Git。在本地存储库中创建 Git 标签后，您可以使用将其推送**git push --tags**到 CodeCommit 存储库。

有关更多信息，请参阅 [查看标签详细信息](how-to-view-tag-details.md)。

## 使用 Git 创建标签
<a name="how-to-create-tag-git"></a>

按照以下步骤使用本地存储库中的 Git 在 CodeCommit 仓库中创建 Git 标签。

在这些步骤中，我们假设您已经将本地存储库连接到 CodeCommit 存储库。有关说明，请参阅[连接存储库](how-to-connect.md)。

1. 运行**git tag *new-tag-name* *commit-id***命令，其中*new-tag-name*是新 Git 标签的名称，*commit-id*也是要与 Git 标签关联的提交 ID。

   例如，下面的命令创建一个名为 `beta` 的 Git 标签，并将其关联到提交 ID `dc082f9a...af873b88`：

   ```
   git tag beta dc082f9a...af873b88
   ```

1. 要将新的 Git 标签从本地存储库推送到 CodeCommit 存储库，请运行**git push *remote-name* *new-tag-name***命令，其中*remote-name*是 CodeCommit 存储库的名称和*new-tag-name*新 Git 标签的名称。

   例如，要将名为的新 Git 标签推送`beta`到名为的 CodeCommit 仓库`origin`：

   ```
   git push origin beta
   ```

**注意**  
要将所有新的 Git 标签从本地存储库推送到 CodeCommit 存储库，请运行**git push --tags**。  
要确保使用仓库中的所有 Git 标签更新您的本地 CodeCommit 存储库，请运行，**git fetch**然后执行。**git fetch --tags**

有关更多选项，请参阅 Git 文档。

# 在中查看 Git 标签的详细信息 AWS CodeCommit
<a name="how-to-view-tag-details"></a>

在 Git 中，标签是可以应用于引用 (如提交) 的标记，用于为引用标记对其他存储库用户可能很重要的信息。例如，您可以使用 **beta** 标签为项目标记 beta 版本的提交。有关更多信息，请参阅 [使用 Git 创建标签](how-to-create-tag.md#how-to-create-tag-git)。Git 标签与存储库标签不同。有关如何使用存储库标签的更多信息，请参阅[为存储库添加标签](how-to-tag-repository-add.md)。

您可以使用 AWS CodeCommit 控制台查看仓库中 Git 标签的相关信息，包括每个 Git 标签引用的提交日期和提交消息。从控制台中，您可以将标签引用的提交与存储库默认分支的标头进行比较。与其他任何提交一样，您还可以查看该 Git 标签点的代码。

您还可以从您的终端或命令行使用 Git 查看有关本地存储库中 Git 标签的详细信息。

**Topics**
+ [查看标签详细信息（控制台）](#how-to-view-tag-details-console)
+ [查看 Git 标签详细信息 (Git)](#how-to-view-tag-details-git)

## 查看标签详细信息（控制台）
<a name="how-to-view-tag-details-console"></a>

使用 AWS CodeCommit 控制台快速查看仓库的 Git 标签列表以及有关 Git 标签引用的提交的详细信息。

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在 **Repositories (存储库)** 中，选择要在其中查看标签的存储库的名称。

1. 在导航窗格中，选择 **Git tags (Git 标签)**。  
![\[存储库中的标签视图。\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/codecommit-tags-view.png)

1. 请执行以下操作之一：
   + 要查看标签在该提交处的代码，请选择 Git 标签名称。
   + 要查看提交的详细信息，包括完整提交消息、提交者和作者，请选择缩写的提交 ID。

## 查看 Git 标签详细信息 (Git)
<a name="how-to-view-tag-details-git"></a>

要使用 Git 查看中本地存储库中 Git 标签的详细信息，请运行以下命令之一：
+ [git tag](#how-to-view-tag-details-git-tag)：查看 Git 标签名称的列表。
+ [git show](#how-to-view-tag-details-git-show)：查看特定 Git 标签的信息。
+ [git ls-remot](#how-to-view-tag-details-git-remote) e 用于查看仓库中有关 Git 标签的信息。 CodeCommit 

**注意**  
要确保使用仓库中的所有 Git 标签更新您的本地 CodeCommit 存储库，请运行，**git fetch**然后执行。**git fetch --tags**

在以下步骤中，我们假设您已经将本地存储库连接到 CodeCommit 存储库。有关说明，请参阅[连接存储库](how-to-connect.md)。

### 查看本地存储库中 Git 标签的列表
<a name="how-to-view-tag-details-git-tag"></a>

1. 运行 **git tag** 命令：

   ```
   git tag
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   beta
   release
   ```
**注意**  
如果尚未定义任何标签，**git tag** 不返回任何内容。

有关更多选项，请参阅 Git 文档。

### 查看本地存储库中 Git 标签的信息
<a name="how-to-view-tag-details-git-show"></a>

1. 运行 **git show *tag-name*** 命令。例如，要查看有关名为 `beta` 的 Git 标签的信息，请运行：

   ```
   git show beta
   ```

1. 如果成功，该命令产生类似以下内容的输出：

   ```
   commit 317f8570...ad9e3c09
   Author: John Doe <johndoe@example.com>
   Date:   Tue Sep 23 13:49:51 2014 -0700
   
       Added horse.txt
   
   diff --git a/horse.txt b/horse.txt
   new file mode 100644
   index 0000000..df42ff1
   --- /dev/null
   +++ b/horse.txt
   @@ -0,0 +1 @@
   +The horse (Equus ferus caballus) is one of two extant subspecies of Equus ferus
   \ No newline at end of file
   ```
**注意**  
要退出 Git 标签信息输出，请键入 **:q**。

有关更多选项，请参阅 Git 文档。

### 查看 CodeCommit 仓库中 Git 标签的相关信息
<a name="how-to-view-tag-details-git-remote"></a>

1. 运行 **git ls-remote --tags** 命令。

   ```
   git ls-remote --tags
   ```

1. 如果成功，此命令将生成 CodeCommit 存储库中 Git 标签的列表作为输出：

   ```
   129ce87a...70fbffba    refs/tags/beta
   785de9bd...59b402d8    refs/tags/release
   ```

   如果尚未定义任何 Git 标签，**git ls-remote --tags** 将返回一个空白行。

有关更多选项，请参阅 Git 文档。

# 删除中的 Git 标签 AWS CodeCommit
<a name="how-to-delete-tag"></a>

要删除 CodeCommit 仓库中的 Git 标签，请使用连接到仓库的本地 CodeCommit 存储库中的 Git。

## 使用 Git 删除 Git 标签
<a name="how-to-delete-tag-git"></a>

按照以下步骤使用本地存储库中的 Git 删除 CodeCommit 仓库中的 Git 标签。

编写这些步骤时假设您已经将本地存储库连接到 CodeCommit 存储库。有关说明，请参阅[连接存储库](how-to-connect.md)。

1. 要从本地存储库中删除 Git 标签，请运行要删除*tag-name*的 Git 标签名称所在的**git tag -d *tag-name***命令。
**提示**  
要获取标 Git 签名称列表，请运行 **git tag**。

   例如，要删除本地存储库中名为 `beta` 的 Git 标签，请运行以下命令：

   ```
   git tag -d beta
   ```

1. 要从 CodeCommit 仓库中删除 Git 标签，请运行**git push *remote-name* --delete *tag-name***命令，其中*remote-name*是本地 CodeCommit 存储库使用的昵称，*tag-name*也是您要从仓 CodeCommit 库中删除的 Git 标签的名称。
**提示**  
要获取 CodeCommit 存储库名称及其名称的列表 URLs，请运行**git remote -v**命令。

   例如，要删除 CodeCommit 存储库`beta`中名为的 Git 标签，名为`origin`：

   ```
   git push origin --delete beta
   ```