でコミットを作成する AWS CodeCommit - AWS CodeCommit

AWS CodeCommit は、新規顧客には利用できなくなりました。 AWS CodeCommit の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

でコミットを作成する AWS CodeCommit

新しいリポジトリの最初のコミットを作成するときは、 AWS CLI と put-file コマンドを使用します。これにより、最初のコミットが作成され、新しいリポジトリのデフォルトのブランチを作成および指定することが可能になります。Git または を使用して AWS CLI 、 CodeCommit リポジトリにコミットを作成できます。ローカルリポジトリが CodeCommit リポジトリに接続されている場合は、Git を使用してローカルリポジトリから CodeCommit リポジトリにコミットをプッシュします。 CodeCommit コンソールで直接コミットを作成するには、AWS CodeCommit リポジトリにファイルを作成または追加する「」および「」を参照してくださいAWS CodeCommit リポジトリでファイルの内容を編集する

注記

ベストプラクティスとして、サポートされている最新バージョンの AWS CLI、Git、およびその他のソフトウェアを使用することをお勧めします。を使用する場合は AWS CLI、 create-commit コマンドを含むバージョンを使用していることを確認するために、最新バージョンがインストールされていることを確認してください。

を使用してリポジトリの最初のコミットを作成する AWS CLI

AWS CLI と put-file コマンドを使用して、リポジトリの最初のコミットを作成できます。put-file を使用すると、空のリポジトリにファイルを追加する最初のコミットが作成され、指定した名前のブランチが作成されます。この新しいブランチは、リポジトリのデフォルトブランチとして指定されます。

注記

で AWS CLI コマンドを使用するには CodeCommit、 をインストールします AWS CLI。詳細については、「コマンドラインリファレンス」を参照してください。

を使用してリポジトリの最初のコミットを作成するには AWS CLI

  1. ローカルコンピュータで、リポジトリの最初のファイルとして追加するファイル CodeCommitを作成します。一般的なプラクティスとして、このリポジトリの用途を他のリポジトリユーザーに説明する README.md マークダウンファイルを作成します。README.md ファイルを含めると、コンソールのリポジトリのコードページの下部に CodeCommitファイルの内容が自動的に表示されます。

  2. ターミナルまたはコマンドラインで、put-file コマンドを実行し、次を指定します。

    • 最初のファイルを追加するリポジトリの名前。

    • デフォルトのブランチとして作成するブランチの名前。

    • ファイルのローカルの場所。この場所に使用される構文は、ローカルのオペレーティングシステムによって異なります。

    • 追加するファイルの名前 (リポジトリ内の更新ファイルの保存先を示すパスを含む)。

    • このファイルに関連付けるユーザー名および E メールアドレス。

    • このファイルの追加理由を説明するコミットメッセージ。

    ユーザー名、E メールアドレス、コミットメッセージは、オプションですが、他のユーザーに変更者や変更の理由を示すために役立ちます。ユーザー名を指定しない場合、 CodeCommit はデフォルトでIAMユーザー名を使用するか、コンソールログインの取得を作成者名として使用します。

    例えば、 という名前のファイルを追加するには README.md という名前のリポジトリへのサンプルベース 6 エンコードされたファイルコンテンツを含む 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 クライアントを使用してコミットを作成する

ローカルコンピュータにインストールされた Git クライアントを使用してコミットを作成し、それらのコミットを CodeCommit リポジトリにプッシュできます。

  1. 前提条件 (例: 設定 ) を完了します。

    重要

    設定が完了していない場合は、Git を使用してリポジトリに対して接続やコミットを行うことはできません。

  2. 正しいブランチでコミットを作成していることを確認します。使用可能なブランチのリストを表示し、現在使用するように設定されているブランチを見つけるには、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
  3. ブランチに変更を加える (ファイルの追加、変更、削除など)。

    例えば、ローカルリポジトリで、以下のテキストを含む bird.txt という名前のファイルを作成します。

    bird.txt -------- Birds (class Aves or clade Avialae) are feathered, winged, two-legged, warm-blooded, egg-laying vertebrates.
  4. git status を実行します。これにより、保留中のコミットに bird.txt がまだ含まれていないことが示されます。

    ... Untracked files: (use "git add <file>..." to include in what will be committed) bird.txt
  5. git add bird.txt を実行して、保留中のコミットに新しいファイルを含めます。

  6. git status をもう一度実行すると、以下のような出力が表示されます。bird.txt が保留中のコミットに含まれるか、コミットのためにステージングされたことがわかります。

    ... Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: bird.txt
  7. コミットを確定するには、git commit オプションを指定して -m を実行します (例: git commit -m "Adding bird.txt to the repository.")。-m オプションを指定すると、コミットメッセージが作成されます。

  8. git status をもう一度実行すると、以下のような出力が表示されます。これは、コミットをローカルリポジトリから CodeCommit リポジトリにプッシュする準備ができていることを示します。

    ... nothing to commit, working directory clean
  9. ローカルリポジトリから CodeCommit リポジトリに確定済みのコミットをプッシュする前に、 を実行することでプッシュしている内容を確認できます。ここでgit diff --stat remote-name/branch-nameremote-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 リポジトリに接続済みであることを前提としています。(手順については、「」を参照してくださいリポジトリへの接続

  10. ローカルリポジトリから CodeCommit リポジトリにコミットをプッシュする準備ができたら、 を実行します。ここでgit push remote-name branch-nameremote-name は、ローカルリポジトリが CodeCommit リポジトリに使用するニックネームであり、branch-name は、 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
    ヒント

    -u オプションを git push に追加した場合 (例: git push -u origin main)、アップストリーム追跡情報が設定されているため、これ以降は git push を実行するだけで済みます。アップストリーム追跡情報を取得するには、git remote show remote-name (例: git remote show origin) を実行します。

他のオプションについては、Git のドキュメントを参照してください。

を使用してコミットを作成する AWS CLI

AWS CLI と create-commit コマンドを使用して、指定したブランチのティップにリポジトリのコミットを作成できます。非参照のマージコミットを作成して、2 つのコミット識別子のマージ結果を表すこともできます。詳細については、「非参照コミットを作成する」を参照してください。

注記

で AWS CLI コマンドを使用するには CodeCommit、 をインストールします AWS CLI。詳細については、「コマンドラインリファレンス」を参照してください。

コミットを作成するには
  1. ローカルコンピュータで、リポジトリにコミットする変更を加えます CodeCommit。

  2. ターミナルまたはコマンドラインで、create-commit コマンドを実行し、次を指定します。

    • 変更を加えるリポジトリ。

    • 変更を加えるブランチ。

    • ブランチに作成された最新のコミットの完全なコミット ID (ヒント、ヘッドコミット、または親コミット ID とも呼ばれます)。

    • 行った変更によってそれらのフォルダの内容が削除された場合に、空のフォルダを保持するかどうか。デフォルトでは、この値は false に設定されます。

    • 追加、変更、または削除するファイルに関する情報。

    • これらの変更に関連付けるユーザー名および E メール。

    • これらの変更を加えた理由についての説明をするコミットメッセージ。

    ユーザー名、E メールアドレス、コミットメッセージはオプションですが、他のユーザーに変更者と変更の理由について理解してもらうために便利です。ユーザー名を指定しない場合、 CodeCommit はデフォルトでIAMユーザー名を使用するか、コンソールログインの取得を作成者名として使用します。

    例えば、 という名前のリポジトリにREADME.mdファイルを追加するリポジトリのコミットを作成するには MyDemoRepomain ブランチ。ファイルの内容は Base64 にあり、「チームリポジトリへようこそ!」とあります。

    aws codecommit create-commit --repository-name MyDemoRepo --branch-name main --parent-commit-id 4c925148EXAMPLE --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
    ヒント

    親コミット ID を取得するには、get-par コマンドを実行します。

    成功すると、このコマンドは以下のような出力を返します。

    { "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 ユーザー向けに最適化されています。コマンドラインあるいは Powersell の 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" } ] }