

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

# AWS CodeCommit リポジトリでのブランチの使用
<a name="branches"></a>

ブランチとは Git では、ブランチはコミットへのポインターまたは参照です。開発時、ブランチはタスクを整理するのに便利な方法です。ブランチを使用すると、他のブランチの作業に影響を与えることなく、新しいバージョンまたは異なるバージョンのファイルで個別に作業を行うことができます。また、新しい機能を開発したり、特定のコミットからプロジェクトの特定のバージョンを保存したりすることができます。最初のコミットを作成すると、*デフォルトのブランチ*が作成されます。このデフォルトブランチは、ユーザーがリポジトリをクローンするときに、ローカルリポジトリのベースブランチまたはデフォルトブランチとして使用されるブランチです。そのデフォルトのブランチの名前は、最初のコミットの作成方法によって異なります。CodeCommit コンソール、、 AWS CLIまたはいずれかの SDKs を使用してリポジトリに最初のファイルを追加すると、そのデフォルトブランチの名前が*メイン*になります。これは、このガイドの例で使用されているデフォルトのブランチ名です。Git クライアントを使用して最初のコミットをプッシュした場合、デフォルトのブランチの名前は、Git クライアントがデフォルトとして指定するものになります。最初のブランチの名前として *main* を使用するように Git クライアントを設定することをご検討ください。

CodeCommit では、リポジトリのデフォルトブランチを変更できます。ブランチを作成および削除することも、ブランチに関する詳細を表示することもできます。ブランチとデフォルトブランチ (または任意の 2 つのブランチ) の違いをすばやく比較できます。リポジトリ内のブランチとマージの履歴を表示するには、次の図に示すように、[コミットビジュアライザー](how-to-view-commit-details.md#how-to-view-commit-details-console-visualizer)を使用できます。

![\[リポジトリ内のブランチのビュー\]](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-cv-complex1.png)


CodeCommit でリポジトリの他の部分を操作する方法については、[ リポジトリを操作する](repositories.md)、[ファイルの操作](files.md) 、[プルリクエストの操作](pull-requests.md)、[コミットの操作](commits.md)、および [ユーザー設定の操作](user-preferences.md) を参照してください。

**Topics**
+ [でブランチを作成する AWS CodeCommit](how-to-create-branch.md)
+ [のブランチへのプッシュとマージを制限する AWS CodeCommit](how-to-conditional-branch.md)
+ [でブランチの詳細を表示する AWS CodeCommit](how-to-view-branch-details.md)
+ [でのブランチの比較とマージ AWS CodeCommit](how-to-compare-branches.md)
+ [でブランチ設定を変更する AWS CodeCommit](how-to-change-branch.md)
+ [でブランチを削除する AWS CodeCommit](how-to-delete-branch.md)

# でブランチを作成する AWS CodeCommit
<a name="how-to-create-branch"></a>

CodeCommit コンソールまたは を使用して AWS CLI 、リポジトリのブランチを作成できます。これは、デフォルトのブランチの作業に影響を与えることなく、新しいバージョンまたは異なるバージョンのファイルで作業をすばやく個別に行う方法です。CodeCommit コンソールでブランチを作成したら、その変更をローカルリポジトリにプルする必要があります。または、CodeCommit に接続されたローカルリポジトリから Git を使用してブランチをローカルに作成し、その変更をプッシュすることもできます。

**Topics**
+ [ブランチを作成する (コンソール)](#how-to-create-branch-console)
+ [ブランチを作成する (Git)](#how-to-create-branch-git)
+ [ブランチを作成する (AWS CLI)](#how-to-create-branch-cli)

## ブランチを作成する (コンソール)
<a name="how-to-create-branch-console"></a>

CodeCommit コンソールを使用して CodeCommit リポジトリにブランチを作成できます。ユーザーが次に変更をリポジトリからプルするときに、新しいブランチが表示されます。

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. **リポジトリ**で、ブランチを作成するリポジトリの名前を選択します。

1. ナビゲーションペインで、[**Branches**] を選択します。

1. [**Create branch**] を選択します。  
![\[CodeCommit コンソールでブランチを作成します。\]](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-branches-create.png)

   [**Branch name (ブランチ名)**] にブランチの名前を入力します。[**Branch from (ブランチ元)**] で、リストからブランチまたはタグを選択するか、コミット ID を貼り付けます。[**Create branch**] を選択します。

## ブランチを作成する (Git)
<a name="how-to-create-branch-git"></a>

以下の手順に従って、ローカルリポジトリから Git を使用してローカルリポジトリにブランチを作成して、そのブランチを CodeCommit リポジトリにプッシュします。

これらのステップでは、ローカルリポジトリが既に CodeCommit リポジトリに接続されていることを前提としています。手順については、「[リポジトリへの接続](how-to-connect.md)」を参照してください。

1. **git checkout -b *new-branch-name*** コマンドを実行してローカルリポジトリにブランチを作成します。ここで、*new-branch-name* は新しいブランチの名前を表します。

   例えば、次のコマンドでは、`MyNewBranch` という名前のブランチがローカルリポジトリに作成されます。

   ```
   git checkout -b MyNewBranch
   ```

1. ローカルリポジトリから CodeCommit リポジトリに新しいブランチをプッシュするには、***remote-name*** と ***new-branch-name*** を両方とも指定して **git push** コマンドを実行します。

   例えば、`origin` というニックネームの CodeCommit リポジトリに、ローカルリポジトリの `MyNewBranch` という名前の新しいブランチをプッシュするには、次のようにします。

   ```
   git push origin MyNewBranch
   ```

**注記**  
`-u` オプションを **git push** (例: **git push -u origin main**) に追加すると、今後 *remote-name* *branch-name* なしで **git push** を実行できます。アップストリーム追跡情報が設定されます。アップストリーム追跡情報を取得するには、**git remote show *remote-name*** (例: **git remote show origin**) を実行します。  
ローカルとリモートのすべての追跡ブランチのリストを見るには、**git branch --all** を実行してください。  
CodeCommit リポジトリ内のブランチに接続されているローカルリポジトリにブランチを設定するには、**git checkout *remote-branch-name*** を実行します。

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

## ブランチを作成する (AWS CLI)
<a name="how-to-create-branch-cli"></a>

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

を使用して CodeCommit リポジトリにブランチ AWS CLI を作成し、そのブランチを CodeCommit リポジトリにプッシュするには、次の手順に従います。最初のコミットを作成し、空のリポジトリのデフォルトブランチの名前を指定する手順については、「[AWS CLIを使用してリポジトリの最初のコミットを作成する](how-to-create-commit.md#create-first-commit)」を参照してください。

1. 次のように指定して **create-branch** コマンドを実行します。
   + ブランチが作成される CodeCommit の名前 (**--repository-name** オプションを指定)。
**注記**  
CodeCommit リポジトリの名前を取得するには、[list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli) コマンドを実行します。
   + 新しいブランチの名前 (**--branch-name** オプションを指定)。
   + 新しいブランチが指すコミットの ID (**--commit-id** オプションを指定)。

   例えば、コミット ID `317f8570EXAMPLE` を指す `MyNewBranch` という名前のブランチを、`MyDemoRepo` という名前の CodeCommit リポジトリに作成するには、次のようにします。

   ```
   aws codecommit create-branch --repository-name MyDemoRepo --branch-name MyNewBranch --commit-id 317f8570EXAMPLE
   ```

   このコマンドは、エラーがある場合にのみ出力を生成します。

1. ローカルリポジトリの利用可能な CodeCommit リポジトリブランチのリストを新しいリモートブランチ名で更新するには、**git remote update *remote-name*** を実行します。

   例えば、CodeCommit の利用可能なブランチのリストをニックネーム `origin` で更新するには、次のようにします。

   ```
   git remote update origin 
   ```
**注記**  
または、**git fetch** コマンドを使用できます。また、**git branch --all** を実行するとすべてのリモートブランチを表示できますが、ローカルリポジトリのリストを更新するまで、作成したリモートブランチはリストに表示されません。  
他のオプションについては、Git のドキュメントを参照してください。

1. CodeCommit リポジトリ内の新しいブランチに接続されているローカルリポジトリにブランチを設定するには、**git checkout *remote-branch-name*** を実行します。

**注記**  
 CodeCommit リポジトリの名前と URL のリストを取得するには、**git remote -v** コマンドを実行します。

# のブランチへのプッシュとマージを制限する AWS CodeCommit
<a name="how-to-conditional-branch"></a>

デフォルトでは、リポジトリにコードをプッシュするための十分な権限を持つ CodeCommit リポジトリユーザーは、そのリポジトリ内のブランチに貢献できます。これは、リポジトリにブランチをコンソール、コマンドライン、または Git を使用して追加した場合でも当てはまります。ただし、一部のリポジトリユーザーだけがそのブランチにコードをプッシュまたはマージできるように、ブランチを設定することもできます。たとえば、シニア開発者のサブセットのみが変更をそのブランチにプッシュまたはマージできるように、実動コードに使用されるブランチを設定することができます。他の開発者は、依然としてブランチから引き出し、独自のブランチを作成して、プルリクエストを作成できますが、そのブランチに変更をプッシュまたはマージすることはできません。IAM の 1 つ以上のブランチのコンテキストキーを使用する条件付きポリシーを作成して、このアクセスを設定できます。

**注記**  
このトピックのいくつかの手順を完了するには、IAM ポリシーを設定して適用するのに十分なアクセス権限を持つ管理者ユーザーでサインインする必要があります。詳細については、「[IAM 管理者のユーザーおよびグループの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)」を参照してください。

**Topics**
+ [ブランチへのプッシュとマージを制限するための IAM ポリシーの設定](#how-to-conditional-branch-create-policy)
+ [IAM グループまたはロールに IAM ポリシーを適用する](#how-to-conditional-branch-apply-policy)
+ [ポリシーのテスト](#how-to-conditional-branch-test)

## ブランチへのプッシュとマージを制限するための IAM ポリシーの設定
<a name="how-to-conditional-branch-create-policy"></a>

IAM にポリシーを作成すると、ユーザーがブランチにコミットをプッシュしたり、プルリクエストをブランチにマージするなど、ブランチを更新できないようにすることができます。これを行うには、条件が満たされている場合にのみ `Deny` ステートメントの効果が適用されるように、ポリシーで条件ステートメントを使用します。`Deny` ステートメントに含める API によって、どのアクションが許可されないかが決まります。このポリシーは、リポジトリ内の 1 つのみのブランチ、リポジトリ内のいくつかのブランチ、または Amazon Web Services アカウント内のすべてのリポジトリで条件に一致するすべてのブランチに適用するように設定できます。<a name="how-to-conditional-branch-create-policy-procedure"></a>

**ブランチの条件付きポリシーを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで、**ポリシー** を選択してください。

1. [**ポリシーの作成**] を選択します。

1. [**JSON**] を選択し、以下のポリシー例を貼り付けます。`Resource` の値を、アクセスを制限するブランチを含むリポジトリの ARN に置き換えます。`codecommit:References` の値を、アクセスを制限したいブランチへの参照に置き換えます。例えば、このポリシーは、コミットのプッシュ、ブランチのマージ、ブランチの削除、ファイルの削除、プルリクエストのマージ、および `MyDemoRepo` という名前のリポジトリの *`main`* というブランチと `prod` というブランチへのファイルの追加を拒否します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": [
                   "codecommit:GitPush",
                   "codecommit:DeleteBranch",
                   "codecommit:DeleteFile",
                   "codecommit:PutFile",
                   "codecommit:MergeBranchesByFastForward",
                   "codecommit:MergeBranchesBySquash",
                   "codecommit:MergeBranchesByThreeWay",
                   "codecommit:MergePullRequestByFastForward",
                   "codecommit:MergePullRequestBySquash",
                   "codecommit:MergePullRequestByThreeWay"
               ],
               "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
               "Condition": {
                   "StringEqualsIfExists": {
                       "codecommit:References": [
                           "refs/heads/main", 
                           "refs/heads/prod"
                        ]
                   },
                   "Null": {
                       "codecommit:References": "false"
                   }
               }
           }
       ]
   }
   ```

------

   Git のブランチは、ヘッドコミットの SHA-1 値へのポインタ (リファレンス) です。そのため、条件では `References` が使用されます。効果が `Null` で、`Deny` がアクションの 1 つであるポリシーでは、`GitPush` ステートメントが必要です。これは、ローカルリポジトリから CodeCommit に変更をプッシュするときに、Git と `git-receive-pack` がどのように動作するかによって必要となります。
**ヒント**  
Amazon Web Services アカウントですべてのリポジトリ内の main という名前のすべてのブランチに適用されるポリシーを作成するには、`Resource` の値をリポジトリ ARN からアスタリスク (`*`) に変更します。

1. [**ポリシーの確認**] を選択します。ポリシーステートメントのエラーを修正し、[**ポリシーの作成**] に進みます。

1. JSON が検証されると、[**ポリシーの作成**] ページが表示されます。[**概要**] セクションに、このポリシーによってアクセス許可が付与されないことを示す警告が表示されます。これは通常の動作です。
   + [**Name**] (名前) に、このポリシーの名前 (例: **DenyChangesToMain**) を入力します。
   + [**説明**] に、ポリシーの目的の説明を入力します。これはオプションですが推奨されます。
   + [**ポリシーの作成**] を選択します。

## IAM グループまたはロールに IAM ポリシーを適用する
<a name="how-to-conditional-branch-apply-policy"></a>

ブランチへのプッシュとマージを制限するポリシーを作成しましたが、そのポリシーは IAM ユーザー、グループ、またはロールに適用するまで効果がありません。ベストプラクティスとして、IAM グループまたはロールにポリシーを適用することを検討してください。個々の IAM ユーザーにポリシーを適用しても、うまくスケールされません。<a name="how-to-conditional-branch-apply-policy-procedure"></a>

**条件付きポリシーをグループまたはロールに適用するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ポリシーを IAM グループに適用する場合は、ナビゲーションペインで [**グループ**] を選択し、ユーザーが引き受けるロールにポリシーを適用する場合は、[**ロール**] を選択します。グループまたはロールの名前を選択します。

1. [**Permissions**] タブで [**Attach Policy**] を選択します。

1. 作成した条件付きポリシーをポリシーのリストから選択し、[**ポリシーのアタッチ**] を選択します。

詳細については、「[IAM ポリシーをアタッチおよびデタッチする](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## ポリシーのテスト
<a name="how-to-conditional-branch-test"></a>

グループまたはロールに適用したポリシーの効果をテストして、期待どおりに機能するようにする必要があります。その方法は数多くあります たとえば、上記のようなポリシーをテストするには、以下のようにします。
+ CodeCommit コンソールに、ポリシーが適用されている IAM グループのメンバーである IAM ユーザー、またはポリシーが適用されているロールを持つユーザーとしてサインインします。コンソールで、制限が適用されるブランチにファイルを追加します。そのブランチにファイルを保存またはアップロードしようとすると、エラーメッセージが表示されます。ファイルを別のブランチに追加します。これで、オペレーションが成功します。
+ CodeCommit コンソールに、ポリシーが適用されている IAM グループのメンバーである IAM ユーザー、またはポリシーが適用されているロールを持つユーザーとしてサインインします。制限が適用されるブランチにマージするプルリクエストを作成します。プルリクエストを作成できるはずですが、マージしようとするとエラーが発生します。
+ ターミナルまたはコマンドラインから、制限が適用されるブランチでコミットを作成し、そのコミットを CodeCommit リポジトリにプッシュします。エラーメッセージが表示されます。他のブランチからのコミットとプッシュはいつものように動作するはずです。

# でブランチの詳細を表示する AWS CodeCommit
<a name="how-to-view-branch-details"></a>

CodeCommit コンソールを使用して、CodeCommit リポジトリのブランチの詳細を表示できます。ブランチへの最後のコミットの日付、コミットメッセージなどを表示できます。CodeCommit リポジトリに接続されたローカルリポジトリから AWS CLI または Git を使用することもできます。 CodeCommit 

**Topics**
+ [ブランチの詳細を表示する (コンソール)](#how-to-view-branch-details-console)
+ [ブランチの詳細を表示する (Git)](#how-to-view-branch-details-git)
+ [ブランチの詳細を表示する (AWS CLI)](#how-to-view-branch-details-cli)

## ブランチの詳細を表示する (コンソール)
<a name="how-to-view-branch-details-console"></a>

CodeCommit コンソールを使用すると、リポジトリのブランチのリストとブランチの詳細をすばやく表示できます。

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. [**リポジトリ**] で、ブランチの詳細を表示するリポジトリの名前を選択します。

1. ナビゲーションペインで、[**Branches**] を選択します。  
![\[リポジトリ内のブランチのビュー。\]](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-branches.png)

1. リポジトリのデフォルトとして使用されるブランチの名前が [**Default branch (デフォルトブランチ)**] ラベルの横に表示されます。ブランチに対する最新のコミットの詳細を表示するには、ブランチを選択し、[**View last commit (最新のコミットを表示)**] を選択します。ブランチ内のファイルとコードを表示するには、ブランチ名を選択します。

## ブランチの詳細を表示する (Git)
<a name="how-to-view-branch-details-git"></a>

ローカルリポジトリから Git を使って CodeCommit リポジトリのローカルおよびリモート追跡ブランチの両方に関する詳細を表示するには、**git branch** コマンドを実行します。

次のステップでは、ローカルリポジトリが既に CodeCommit リポジトリに接続されていることを前提としています。手順については、「[リポジトリへの接続](how-to-connect.md)」を参照してください。

1. **git branch** オプションを指定して **--all** コマンドを実行します。

   ```
   git branch --all
   ```

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

   ```
     MyNewBranch
   * main
     remotes/origin/MyNewBranch
     remotes/origin/main
   ```

   現在開いているブランチの横にはアスタリスク (`*`) が表示されます。それ以降のエントリはリモート追跡の参照です。
**ヒント**  
**git branch** でローカルブランチが表示されます。  
**git branch -r** でリモートブランチが表示されます。  
**git checkout *existing-branch-name*** は、指定したブランチ名に切り替わります。また、**git branch** を直後に実行すると、アスタリスク (`*`) がブランチ名の横に表示されます。  
**git remote update *remote-name*** は、使用可能な CodeCommit リポジトリブランチのリストでローカルリポジトリを更新します。CodeCommit リポジトリの名前と URL のリストを取得するには、**git remote -v** コマンドを実行します。

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

## ブランチの詳細を表示する (AWS CLI)
<a name="how-to-view-branch-details-cli"></a>

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

を使用して CodeCommit リポジトリ内のブランチの詳細 AWS CLI を表示するには、次のコマンドを 1 つ以上実行します。
+ ブランチ名のリストを表示するには、[list-branches](#how-to-view-branch-details-cli) を実行します。
+ 特定のブランチに関する情報を表示するには、[get-branch](#how-to-view-branch-details-cli-details) を実行します。

### ブランチ名のリストを表示するには
<a name="how-to-view-branch-details-cli-list"></a>

1. CodeCommit リポジトリの名前、および `--repository-name` オプションを指定して、**list-branches** コマンドを実行します。
**ヒント**  
CodeCommit リポジトリの名前を取得するには、[list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli) コマンドを実行します。

   例えば、`MyDemoRepo` という名前の CodeCommit 内のブランチに関する詳細を表示するには、次のようにします。

   ```
   aws codecommit list-branches --repository-name MyDemoRepo
   ```

1. 成功すると、このコマンドは `branchNameList` オブジェクトを出力します。各エントリは各ブランチに対応しています。

   前述のコマンド例に基づいて、出力例をいくつか示します。

   ```
   {
       "branches": [
           "MyNewBranch",
           "main"
       ]
   }
   ```

### ブランチに関する情報を表示するには
<a name="how-to-view-branch-details-cli-details"></a>

1. 次のように指定して **get-branch** コマンドを実行します。
   + リポジトリ名 (**--repository-name** オプションで指定)。
   + ブランチ名 (**--branch-name** オプションで指定)。

   例えば、`MyDemoRepo` という名前の CodeCommit リポジトリ内の、`MyNewBranch` という名前のブランチに関する情報を表示するには、次のようにします。

   ```
   aws codecommit get-branch --repository-name MyDemoRepo --branch-name MyNewBranch
   ```

1. 成功すると、このコマンドはブランチの名前と、そのブランチに作成された最後のコミットの ID を出力します。

   前述のコマンド例に基づいて、出力例をいくつか示します。

   ```
   {
       "branch": {
             "branchName": "MyNewBranch",
             "commitID": "317f8570EXAMPLE"
       }
   }
   ```

# でのブランチの比較とマージ AWS CodeCommit
<a name="how-to-compare-branches"></a>

CodeCommit コンソールを使用して、CodeCommit リポジトリのブランチを比較できます。ブランチの比較により、すばやくブランチとデフォルトブランチ間の違いを表示したり、任意の 2 つのブランチ間の違いを表示できます。

**Topics**
+ [ブランチをデフォルトブランチと比較する](#how-to-compare-branches-default)
+ [2 つの特定のブランチを比較する](#how-to-compare-branches-two)
+ [2 つのブランチをマージする (AWS CLI)](#how-to-merge-branches-cli)

## ブランチをデフォルトブランチと比較する
<a name="how-to-compare-branches-default"></a>

CodeCommit コンソールを使用して、リポジトリのブランチとデフォルトブランチ間の違いをすばやく表示します。

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. **リポジトリ**のリストで、ブランチを比較するリポジトリの名前を選択します。

1. ナビゲーションペインで、[**コミット**]、[**コミットの比較**] タブの順に選択します。

1. [**送信先**] で、デフォルトブランチの名前を選択します。[**送信元**] で、デフォルトブランチと比較するブランチを選択します。[**Compare**] を選択します。

## 2 つの特定のブランチを比較する
<a name="how-to-compare-branches-two"></a>

CodeCommit コンソールを使用して、比較する 2 つのブランチ間の違いを表示します。

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. **リポジトリ**のリストで、ブランチを比較するリポジトリの名前を選択します。

1. ナビゲーションペインで、[**コミット**]、[**コミットの比較**] タブの順に選択します。

1. [**送信先**] および [**送信元**] で、比較する 2 つのブランチを選択し、[**比較**] を選択します。変更されたファイルのリストを表示するには、変更されたファイルのリストを展開します。ファイル内の変更は、並べて ([Split] ビュー) またはインラインで ([Unified] ビュー) 表示できます。
**注記**  
IAM ユーザーとしてサインインしている場合、コードやその他のコンソール設定の表示用設定を設定して保存できます。詳細については、「[ユーザー設定の操作](user-preferences.md)」を参照してください。  
![\[2 つのブランチ間の違いの省略表示。\]](http://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/images/codecommit-compare-branches.png)

## 2 つのブランチをマージする (AWS CLI)
<a name="how-to-merge-branches-cli"></a>

CodeCommit リポジトリ内の 2 つのブランチをマージするには、次のいずれかのコマンドを実行して、使用可能なマージ戦略のいずれか AWS CLI を使用します。
+ 早送りマージ戦略を使用して 2 つのブランチをマージするには、[**merge-branches-by-fast-forward**](#merge-branches-by-fast-forward) コマンドを実行します。
+ スカッシュマージ戦略を使用して 2 つのブランチをマージするには、[**merge-branches-by-squash**](#merge-branches-by-squash) コマンドを実行します。
+ 3 方向マージ戦略を使用して 2 つのブランチをマージするには、[**merge-branches-by-three-way**](#merge-branches-by-three-way) コマンドを実行します。

**create-unreferenced-merge-commit** コマンドを実行して、マージをテストすることもできます。詳細については、「[プルリクエスト内の競合の解決](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit)」を参照してください。

**注記**  
CodeCommit で AWS CLI コマンドを使用するには、 をインストールします AWS CLI。詳細については、「[コマンドラインリファレンス](cmd-ref.md)」を参照してください。

**を使用して CodeCommit リポジトリ内の 2 つのブランチを AWS CLI マージするには**

1. <a name="merge-branches-by-fast-forward"></a>早送りマージ戦略を使用して 2 つのブランチをマージするには、以下を指定して **merge-branches-by-fast-forward** コマンドを実行します。
   + マージする変更を含む送信元ブランチの名前 (**--source-commit-specifier** オプションで指定)。
   + 変更をマージする送信先ブランチの名前 (**--destination-commit-specifier** オプションで指定)。
   + レポジトリの名前 (**--repository-name** オプションを指定)。

    例えば、*bugfix-1234* という名前の送信元ブランチを、*MyDemoRepo* という名前のリポジトリの *preprod* という名前の送信先ブランチにマージするには、次のようにします。

   ```
   aws codecommit merge-branches-by-fast-forward --source-commit-specifier bugfix-bug1234 --destination-commit-specifier preprod --repository-name MyDemoRepo
   ```

   このコマンドが正常に実行されると、次のような出力が生成されます。

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

1. <a name="merge-branches-by-squash"></a>スカッシュマージ戦略を使用して 2 つのブランチをマージするには、以下を指定して **merge-branches-by-squash** コマンドを実行します。
   + マージする変更を含む送信元ブランチの名前 (**--source-commit-specifier** オプションで指定)。
   + 変更をマージする送信先ブランチの名前 (**--destination-commit-specifier** オプションで指定)。
   + レポジトリの名前 (**--repository-name** オプションを指定)。
   + 含めるコミットメッセージ (**--commit-message** オプションを指定)。
   + コミットに使用する名前 (**--name** オプションを指定)。
   + コミットに使用する E メールアドレス (**--email** オプションを指定)。

   たとえば、*bugfix-bug1234* という名前の送信元ブランチを *MyDemoRepo* という名前のリポジトリの *bugfix-quarterly* という名前の送信先ブランチにマージするには、次のようにします。

   ```
   aws codecommit merge-branches-by-squash --source-commit-specifier bugfix-bug1234 --destination-commit-specifier bugfix-quarterly --author-name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Merging in fix branches to prepare for a general patch." --repository-name MyDemoRepo
   ```

   このコマンドが正常に実行されると、次のような出力が生成されます。

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

1. <a name="merge-branches-by-three-way"></a>3 方向マージ戦略を使用して 2 つのブランチをマージするには、以下を指定して **merge-branches-by-three-way** コマンドを実行します。
   + マージする変更を含む送信元ブランチの名前 (**--source-commit-specifier** オプションで指定)。
   + 変更をマージする送信先ブランチの名前 (**--destination-commit-specifier** オプションで指定)。
   + レポジトリの名前 (**--repository-name** オプションを指定)。
   + 含めるコミットメッセージ (**--commit-message** オプションを指定)。
   + コミットに使用する名前 (**--name** オプションを指定)。
   + コミットに使用する E メールアドレス (**--email** オプションを指定)。

   例えば、*main* という名前の送信元ブランチを、*MyDemoRepo* という名前のリポジトリの *bugfix-1234* という名前の送信先ブランチにマージするには、次のようにします。

   ```
   aws codecommit merge-branches-by-three-way --source-commit-specifier main --destination-commit-specifier bugfix-bug1234 --author-name "Jorge Souza" --email "jorge_souza@example.com" --commit-message "Merging changes from main to bugfix branch before additional testing."  --repository-name MyDemoRepo
   ```

   このコマンドが正常に実行されると、次のような出力が生成されます。

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

# でブランチ設定を変更する AWS CodeCommit
<a name="how-to-change-branch"></a>

デフォルトブランチとして使用するブランチは、 AWS CodeCommit コンソールまたは で変更できます AWS CLI。例えば、デフォルトのブランチを *master* に設定する Git クライアントを使用して最初のコミットを作成した場合、*main* という名前のブランチを作成し、新しいブランチがリポジトリのデフォルトのブランチとして設定されるようにブランチ設定を変更することができます。他のブランチ設定を変更するには、CodeCommit リポジトリに接続されたローカルリポジトリから Git を使用できます。

**Topics**
+ [デフォルトのブランチを変更する (コンソール)](#how-to-change-branch-console)
+ [デフォルトのブランチを変更する (AWS CLI)](#how-to-change-branch-cli)

## デフォルトのブランチを変更する (コンソール)
<a name="how-to-change-branch-console"></a>

CodeCommit リポジトリのデフォルトブランチは、 AWS CodeCommit コンソールで指定できます。

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. **リポジトリ**のリストで、設定を変更するリポジトリの名前を選択します。

1. ナビゲーションペインで [**Settings**] (設定) をクリックします。

1. [**Default branch (デフォルトブランチ)**] のドロップダウンリストを選択し、別のブランチを選択します。[**保存**] を選択します。
**ヒント**  
ドロップダウンリストに別のブランチが表示されない場合は、追加のブランチを作成していません。リポジトリにブランチが 1 つしかない場合、リポジトリのデフォルトのブランチを変更することはできません。詳細については、「[でブランチを作成する AWS CodeCommit](how-to-create-branch.md)」を参照してください。
**[Default branch]** (デフォルトブランチ) セクションが表示されず、通知ルールと接続に関する項目が表示される場合は、コンソールの全般設定メニューを表示しています。リポジトリの設定メニューは、**[Code]** (コード) および**[Pull requests]** (プルリクエスト) と同じレベルの**[Repositories]** (リポジトリ) の下に表示されます。

## デフォルトのブランチを変更する (AWS CLI)
<a name="how-to-change-branch-cli"></a>

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

を使用して CodeCommit AWS CLI リポジトリ内のリポジトリのブランチ設定を変更するには、次のコマンドを実行します。
+ [update-default-branch](#how-to-change-branch-cli-default)。デフォルトのブランチを変更します。

### デフォルトのブランチを変更するには
<a name="how-to-change-branch-cli-default"></a>

1. 次のように指定して **update-default-branch** コマンドを実行します。
   + デフォルトのブランチが更新される CodeCommit リポジトリの名前 (**--repository-name** オプションを指定)。
**ヒント**  
CodeCommit リポジトリの名前を取得するには、[list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli) コマンドを実行します。
   + 新しいデフォルトブランチの名前 (**--default-branch-name** オプションを指定)。
**ヒント**  
ブランチの名前を取得するには、[list-branches](how-to-view-branch-details.md#how-to-view-branch-details-cli) コマンドを実行します。

1. 例えば、`MyDemoRepo` という名前の CodeCommit リポジトリのデフォルトブランチを `MyNewBranch` に変更するには、次のようにします。

   ```
   aws codecommit update-default-branch --repository-name MyDemoRepo --default-branch-name MyNewBranch
   ```

   このコマンドは、エラーがある場合にのみ出力を生成します。

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

# でブランチを削除する AWS CodeCommit
<a name="how-to-delete-branch"></a>

CodeCommit コンソールを使用して、リポジトリのブランチを削除できます。CodeCommit でブランチを削除しても、ローカルリポジトリのブランチは削除されません。したがって、ユーザーは、次回変更をプルするまで引き続きそのブランチのコピーを持つことになります。ローカルでブランチを削除して CodeCommit リポジトリにその変更をプッシュするには、CodeCommit リポジトリに接続されたローカルリポジトリから Git を使用します。

ブランチを削除してもコミットは削除されませんが、そのブランチ内のコミットへのリファレンスをすべて削除します。レポジトリ内の別のブランチにマージされていないコミットが含まれるブランチを削除した場合、それらのコミットの完全なコミット ID がなければ、それらを取得することはできません。

**注記**  
このトピックの手順を使用して、リポジトリのデフォルトブランチを削除することはできません。デフォルトブランチを削除する場合は、ブランチを作成し、そのブランチをデフォルトブランチにしてから、古いブランチを削除する必要があります。詳細については、「[ブランチを作成する](how-to-create-branch.md)」および「[ブランチ設定を変更する](how-to-change-branch.md)」を参照してください。

**Topics**
+ [ブランチを削除する (コンソール)](#how-to-delete-branch-console)
+ [ブランチを削除する (AWS CLI)](#how-to-delete-branch-cli)
+ [ブランチを削除する (Git)](#how-to-delete-branch-git)

## ブランチを削除する (コンソール)
<a name="how-to-delete-branch-console"></a>

CodeCommit コンソールを使用して、CodeCommit リポジトリのブランチを削除できます。

1. [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) で CodeCommit コンソールを開きます。

1. **リポジトリ**で、ブランチを削除するリポジトリの名前を選択します。

1. ナビゲーションペインで、[**Branches**] を選択します。

1. 削除するブランチの名前を選択してから、[**ブランチの削除**] を選択し、選択内容を確認します。

## ブランチを削除する (AWS CLI)
<a name="how-to-delete-branch-cli"></a>

 AWS CLI を使用して、そのブランチがリポジトリのデフォルトブランチでない場合は、CodeCommit リポジトリ内のブランチを削除できます。のインストールと使用の詳細については AWS CLI、「」を参照してください[コマンドラインリファレンス](cmd-ref.md)。

1. ターミナルまたはコマンドラインで、**delete-branch** コマンドを実行し、次を指定します。
   + ブランチが削除される CodeCommit リポジトリの名前 (**--repository-name** オプションを指定)。
**ヒント**  
CodeCommit リポジトリの名前を取得するには、[list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli) コマンドを実行します。
   + 削除するブランチの名前 (**branch-name** オプションを指定)。
**ヒント**  
ブランチの名前を取得するには、[list-branches](how-to-view-branch-details.md#how-to-view-branch-details-cli) コマンドを実行します。

1. 例えば、`MyDemoRepo` という名前の CodeCommit リポジトリ内の、`MyNewBranch` という名前のブランチを削除するには、次のようにします。

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

   このコマンドでは、削除されたブランチに関する情報が返され、それには、削除されたブランチの名前、およびブランチのヘッドだったコミットの完全なコミット ID が含まれます。例:

   ```
   "deletedBranch": {
       "branchName": "MyNewBranch",
       "commitId": "317f8570EXAMPLE"
   }
   ```

## ブランチを削除する (Git)
<a name="how-to-delete-branch-git"></a>

以下のステップに従い、ローカルリポジトリから Git を使用して CodeCommit リポジトリのブランチを削除します。

これらのステップでは、ローカルリポジトリが既に CodeCommit リポジトリに接続されていることを前提としています。手順については、「[リポジトリへの接続](how-to-connect.md)」を参照してください。

1. ローカルリポジトリからブランチを削除するには、**git branch -D *branch-name*** コマンドを実行します。ここで、*branch-name* は削除するブランチの名前です。
**ヒント**  
ブランチ名のリストを取得するには、**git branch --all** を実行します。

   例えば、`MyNewBranch` という名前のローカルリポジトリのブランチを削除するには、次のようにします。

   ```
   git branch -D MyNewBranch
   ```

1. CodeCommit リポジトリからブランチを削除するには、**git push *remote-name* --delete *branch-name*** コマンドを実行します。ここで、*remote-name* はローカルリポジトリが CodeCommit リポジトリに使用するニックネームであり、*branch-name* は CodeCommit リポジトリから削除するブランチの名前です。
**ヒント**  
CodeCommit リポジトリの名前と URL のリストを取得するには、**git remote -v** コマンドを実行します。

   例えば、`origin` という名前の CodeCommit リポジトリ内の、`MyNewBranch` という名前のブランチを削除するには、次のようにします。

   ```
   git push origin --delete MyNewBranch
   ```
**ヒント**  
このコマンドでは、デフォルトブランチは削除されません。

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