AWS CodeCommit でコミットの詳細を表示する - AWS CodeCommit

AWS CodeCommit でコミットの詳細を表示する

リポジトリのコミットの履歴を参照するには、AWS CodeCommit コンソールを使用します。これにより、リポジトリに加えられた変更を特定しやすくなります。変更内容には、以下を含みます。

  • 変更日時および変更者。

  • 特定のコミットがブランチにマージされた日時。

ブランチのコミット履歴を表示すると、ブランチ間の相違点を把握しやすくなります。タグ付けを使用する場合は、タグでラベル付けられたコミットや、そのタグが付いたコミットの親をすばやく表示できます。コマンドラインで Git を使用し、ローカル repo や CodeCommit リポジトリ のコミットに関する詳細を表示できます。

リポジトリのコミットの参照

リポジトリへのコミットの履歴を参照するには、AWS CodeCommit コンソールを使用します。また、リポジトリ内のコミットとそのブランチのグラフを時系列表示することもできます。これにより、変更日時など、リポジトリの履歴を理解しやすくなります。

注記

git rebase コマンドを使用してリポジトリをリベースすると、リポジトリの履歴が変更されます。これにより、コミットの順番が入れ替わることがあります。詳細については、「Git でのブランチ作成からリベースまで」または Git のドキュメントを参照してください。

リポジトリのコミット履歴を参照する

コミッターやコミットメッセージに関する情報を含め、リポジトリの特定のブランチまたはタグのコミット履歴を閲覧できます。コミットのコードを表示することもできます。

コミットの履歴を参照するには

  1. https://console.aws.amazon.com/codesuite/codecommit/home にある CodeCommit コンソールを開きます。

  2. [Repositories (リポジトリ)] で、コミット履歴を確認するリポジトリを選択します。

  3. ナビゲーションペインで、[Commits] を選択します。コミット履歴の表示では、リポジトリのコミット履歴がデフォルトのブランチに、コミット日の新しい順で表示されます。日付と時刻は協定世界時 (UTC) 表示されます。別のブランチのコミット履歴を表示するには、ビューセレクタボタンを選択後、リストからブランチを選択します。リポジトリでタグを使用している場合は、ビューセレクタボタンのタグを選択して、特定のタグが付けられたコミット、およびその親を表示できます。

    
              コンソールでのコミット表示
  4. コミットとその親の違いを表示し、変更に関するコメントを確認するには、省略されたコミット ID を選択します。詳細については、「コミットとその親を比較」および「コミットについてコメントする」を参照してください。コミットと、それ以外のコミット指定子 (例: ブランチ、タグ、コミット ID) の違いを表示するには、「2 つのコミット指定子を比較」を参照してください。

  5. 次の 1 つ以上の操作を行います。

    • 変更の日時を表示するには、コミットの日付の上にマウスカーソルを置きます。

    • フルコミット ID を表示するには、コピーして、テキストエディタまたは他の場所に貼り付けます。コピーするには、[Copy ID] を選択します。

    • コミット時のコードをそのまま表示するには、[Browse (参照)] を選択します。コミット時のリポジトリの内容が [Code] ビューに表示されます。ビューセレクタボタンを選択すると、ブランチまたはタグではなく、省略されたコミット ID が表示されます。

リポジトリのコミット履歴のグラフを表示する

リポジトリのコミット履歴のグラフを表示できます。[Commit Visualizer] ビューは、リポジトリのブランチに対するすべてのコミットの Directed Acyclic Graph (DAG) を表したものです。この図は、コミットや関連機能が追加またはマージされたタイミングを理解するのに役立ちます。また、他の変更との前後関係を指定しやすくなります。

注記

早送りメソッドを使用してマージされたコミットは、コミットのグラフに別々の行として表示されません。

コミットのグラフを表示するには

  1. https://console.aws.amazon.com/codesuite/codecommit/home にある CodeCommit コンソールを開きます。

  2. [Repositories (リポジトリ)] で、コミットのグラフを表示するリポジトリを選択します。

  3. ナビゲーションペインで [Commits (コミット)] を選択し、[Commit visualizer] を選択します。

    
              コンソールでのリポジトリのグラフィカルな表示

    コミットのグラフにおいて、各コミットメッセージの省略されたコミット ID と件名は、グラフの該当場所の横に表示されます。

    注記

    グラフは、1 ページに 35 ブランチまで表示できます。ブランチが 36 以上存在する場合は、グラフが複雑になるため表示できません。次の 2 つの方法でシンプルに表示することができます。

    • ビューセレクタボタンを使用して、特定のブランチのグラフを表示します。

    • フルコミット ID を検索ボックスに貼り付けて、グラフをコミットからレンダリングします。

  4. コミットから新しいグラフをレンダリングするには、そのコミットに対応するグラフ内のポイントを選択します。ビューセレクタボタンは、省略されたコミット ID に変更されています。

    
              特定のコミットからレンダリングされた新しいグラフ

コミットの詳細の表示 (AWS CLI)

Git を使用して、コミットに関する詳細を表示できます。AWS CLI を使用して ローカル repo や CodeCommit リポジトリ のコミットに関する詳細を表示するには、以下のコマンドを実行します。

  • コミットに関する情報を表示するには、aws codecommit get-commit を実行します。

  • 複数のコミットに関する情報を表示するには、aws codecommit batch-get-commits を実行します。

  • マージコミットに関する情報を表示するには、aws codecommit get-merge-commit を実行します。

  • コミット指定子の変更に関する情報(ブランチ、タグ、HEAD または コミット ID などのその他の完全に修飾されたリファレンス)を表示するには、aws codecommit get-differences を実行します。

  • base64 でエンコードされたリポジトリの Git blob オブジェクトのコンテンツを表示するには、aws codecommit get-blob を実行します。

コミットに関する情報を表示するには

  1. 次のように指定して aws codecommit get-commit コマンドを実行します。

    • CodeCommit リポジトリ の名前 (--repository-name オプションを指定)。

    • フルコミット ID。

    たとえば、MyDemoRepo という名前の CodeCommit リポジトリ で ID が 317f8570EXAMPLE のコミットに関する詳細を表示するには、次のようにします。

    aws codecommit get-commit --repository-name MyDemoRepo --commit-id 317f8570EXAMPLE
  2. 正常に実行された場合、このコマンドの出力には以下が含まれます。

    • (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" } }

マージコミットに関する情報を表示するには

  1. 次のように指定して get-merge-commit コマンドを実行します。

    • マージの送信元のコミット識別子 (--source-commit-specifier オプションを指定)。

    • マージの送信先のコミット識別子 (--destination-commit-specifier オプションを指定)。

    • 使用するマージオプション (--merge-option オプションを指定)。

    • レポジトリの名前 (--repository-name オプションを指定)。

    たとえば、MyDemoRepo というリポジトリで THREE_WAY_MERGE 戦略を使用して、master という名前の送信先ブランチと bugfix-bug1234 という名前の送信元ブランチのマージコミットに関する情報を表示するには、次のようにします。

    aws codecommit get-merge-commit --source-commit-specifier bugfix-bug1234 --destination-commit-specifier master --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
  2. 成功すると、このコマンドは次のような情報を返します。

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

複数のコミットに関する情報を表示するには

  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
  2. 正常に実行された場合、このコマンドの出力には以下が含まれます。

    • (Git に設定されている) コミットの作者に関する情報 (タイムスタンプ形式の日付および協定世界時 (UTC) オフセットなど)

    • (Git に設定されている) コミッターに関する情報 (タイムスタンプ形式の日付および協定世界時 (UTC) オフセットなど)

    • コミットが存在する 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" } }

コミット指定子の変更に関する情報を表示するには

  1. 次のように指定して aws codecommit get-differences コマンドを実行します。

    • CodeCommit リポジトリ の名前 (--repository-name オプションを指定)。

    • 取得する情報のコミット指定子。--after-commit-specifier のみ必須です。--before-commit-specifier を指定しない場合は、--after-commit-specifier 時点で最新のファイルがすべて表示されます。

    たとえば、MyDemoRepo という名前の CodeCommit リポジトリ で ID が 317f8570EXAMPLE4c925148EXAMPLE のコミット間の違いに関する情報を表示するには、次のようにします。

    aws codecommit get-differences --repository-name MyDemoRepo --before-commit-specifier 317f8570EXAMPLE --after-commit-specifier 4c925148EXAMPLE
  2. 正常に実行された場合、このコマンドの出力には以下が含まれます。

    • 変更タイプなど、変更点を示したリスト (追加は 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 オブジェクトに関する情報を表示するには

  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
  2. 正常に実行された場合、このコマンドの出力には以下が含まれます。

    • base64 でエンコードされた blob の内容 (通常はファイル)。

    たとえば、前のコマンドの出力は、以下のようになります。

    { "content": "QSBCaW5hcnkgTGFyToEXAMPLE=" }

コミットの詳細の表示 (Git)

以下のステップを実行する前に、ローカル repo を CodeCommit リポジトリ に接続して変更をコミット済みであるものとします。手順については、「リポジトリに接続する」を参照してください。

リポジトリに対する最新のコミットの変更を表示するには、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 は表示されません。

発生した変更を表示するには、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.

2 つのコミット間の違いを表示するには、git diff コマンドを実行して 2 つのコミット ID を含めます。

git diff ce22850d 4f8c6f9d

この例では、この 2 つのコミット間の違いは、2 つのファイルが追加されたことです。このコマンドでは、以下のような出力が生成されます。

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 を使用して ローカル repo のコミットに関する詳細を表示するには、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 のドキュメントを参照してください。