

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Trabalhando com ramificações em AWS CodeCommit repositórios
<a name="branches"></a>

O que é uma ramificação? No Git, as ramificações são simplesmente ponteiros ou referências a uma confirmação. Durante o desenvolvimento, elas são uma forma conveniente de organizar seu trabalho. As ramificações podem ser usadas para separar o trabalho em uma versão nova ou diferente de arquivos sem afetar o trabalho em outras ramificações. Elas também podem ser usadas para desenvolver novos recursos, armazenar uma versão específica do seu projeto a partir de uma confirmação particular e muito mais. Quando você cria sua primeira confirmação, uma *ramificação padrão* é criada para você. Essa ramificação padrão é aquela usada como base ou ramificação padrão em repositórios locais quando os usuários clonam o repositório. O nome dessa ramificação padrão varia dependendo de como você cria sua primeira confirmação. Se você adicionar o primeiro arquivo ao seu repositório usando o CodeCommit console AWS CLI, o ou um dos SDKs, o nome dessa ramificação padrão será *main*. Esse é o nome usado para a ramificação padrão em todos os exemplos desse guia. Se você enviar sua primeira confirmação usando um cliente Git, o nome da ramificação padrão é o que o cliente Git especifica como padrão. Considere configurar seu cliente Git para usar *principal* como nome da ramificação inicial.

Em CodeCommit, você pode alterar a ramificação padrão do seu repositório. Você também pode criar e excluir ramificações e visualizar detalhes sobre uma ramificação. Você pode comparar rapidamente as diferenças entre uma ramificação e a ramificação padrão (ou duas ramificações). Para visualizar o histórico de ramificações e mesclagens no seu repositório, você pode usar o [Visualizador de confirmações](how-to-view-commit-details.md#how-to-view-commit-details-console-visualizer), mostrado no gráfico a seguir.

![\[Uma exibição de ramificações em um repositório\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-cv-complex1.png)


Para obter informações sobre como trabalhar com outros aspectos do seu repositório em CodeCommit[Trabalhar com repositórios](repositories.md), consulte[Trabalhar com arquivos](files.md),[Trabalhar com solicitações pull](pull-requests.md),[Trabalhar com confirmações](commits.md), e. [Trabalhar com preferências do usuário](user-preferences.md) 

**Topics**
+ [Crie uma filial em AWS CodeCommit](how-to-create-branch.md)
+ [Limite os envios e fusões às ramificações em AWS CodeCommit](how-to-conditional-branch.md)
+ [Veja os detalhes da filial em AWS CodeCommit](how-to-view-branch-details.md)
+ [Compare e mescle filiais em AWS CodeCommit](how-to-compare-branches.md)
+ [Alterar as configurações da ramificação em AWS CodeCommit](how-to-change-branch.md)
+ [Excluir uma ramificação em AWS CodeCommit](how-to-delete-branch.md)

# Crie uma filial em AWS CodeCommit
<a name="how-to-create-branch"></a>

Você pode usar o CodeCommit console ou o AWS CLI para criar branches para seu repositório. Esta é uma maneira rápida de separar o trabalho em uma versão nova ou diferente de arquivos sem afetar o trabalho na ramificação padrão. Depois de criar uma ramificação no CodeCommit console, você deve transferir essa alteração para seu repositório local. Como alternativa, você pode criar uma ramificação localmente e, em seguida, usar o Git de um repositório local conectado ao CodeCommit repositório para enviar essa alteração. 

**Topics**
+ [Criar uma ramificação (console)](#how-to-create-branch-console)
+ [Criar uma ramificação (Git)](#how-to-create-branch-git)
+ [Criar uma ramificação (AWS CLI)](#how-to-create-branch-cli)

## Criar uma ramificação (console)
<a name="how-to-create-branch-console"></a>

Você pode usar o CodeCommit console para criar uma ramificação em um CodeCommit repositório. Da próxima vez que os usuários extraírem alterações do repositório, eles verão a nova ramificação.

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja criar uma ramificação. 

1. No painel de navegação, escolha **Branches**.

1. Escolha **Create branch**.   
![\[Criação de uma ramificação no CodeCommit console.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-branches-create.png)

   Em **Branch name (Nome da ramificação)**, insira um nome para a ramificação. Em **Branch from (Ramificação de)**, escolha uma ramificação ou tag da lista ou cole um ID de confirmação. Escolha **Create branch**.

## Criar uma ramificação (Git)
<a name="how-to-create-branch-git"></a>

Siga estas etapas para usar o Git de um repositório local para criar uma ramificação em um repositório local e, em seguida, enviar essa ramificação para o repositório. CodeCommit 

Essas etapas são escritas com a suposição de que você já conectou o repositório local ao CodeCommit repositório. Para instruções, consulte [Conexão a um repositório](how-to-connect.md).

1. Crie uma ramificação em seu repositório local executando o **git checkout -b *new-branch-name*** comando, onde *new-branch-name* está o nome da nova ramificação.

   Por exemplo, o seguinte comando cria uma ramificação chamada `MyNewBranch` no repositório local:

   ```
   git checkout -b MyNewBranch
   ```

1. Para enviar a nova ramificação do repositório local para o CodeCommit repositório, execute o **git push** comando, especificando o e o. ***remote-name*** ***new-branch-name*** 

   Por exemplo, para enviar uma nova ramificação no repositório local chamada `MyNewBranch` para o CodeCommit repositório com o apelido: `origin`

   ```
   git push origin MyNewBranch
   ```

**nota**  
Se você adicionar a `-u` opção a **git push** (por exemplo,**git push -u origin main**), no futuro poderá executar **git push** sem *remote-name**branch-name*. As informações de rastreamento upstream estão definidas. Para obter as informações de rastreamento upstream, execute **git remote show *remote-name*** (por exemplo, **git remote show origin**).  
Para ver uma lista de todas as ramificações de rastreamento local e remoto, execute **git branch --all**.  
Para configurar uma ramificação no repositório local conectada a uma ramificação no CodeCommit repositório, execute. **git checkout *remote-branch-name***

Para obter mais opções, consulte a documentação do Git.

## Criar uma ramificação (AWS CLI)
<a name="how-to-create-branch-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

Siga estas etapas para usar o AWS CLI para criar uma ramificação em um CodeCommit repositório e, em seguida, enviar essa ramificação para o CodeCommit repositório. Para ver as etapas para criar uma confirmação inicial e especificar o nome da ramificação padrão para um repositório vazio, consulte [Criar a primeira confirmação para um repositório usando a AWS CLI](how-to-create-commit.md#create-first-commit).

1. Execute o comando **create-branch**, especificando:
   + O nome do CodeCommit repositório em que a ramificação é criada (com a **--repository-name** opção).
**nota**  
Para obter o nome do CodeCommit repositório, execute o comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + O nome da nova ramificação (com a opção **--branch-name**).
   + O ID da confirmação para a qual a nova ramificação apontará (com a opção **--commit-id**).

   Por exemplo, para criar uma ramificação chamada `MyNewBranch` que aponte para o ID do commit `317f8570EXAMPLE` em um CodeCommit repositório chamado`MyDemoRepo`:

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

   Esse comando gerará saídas somente se houver erros.

1. Para atualizar a lista de ramificações de CodeCommit repositório disponíveis em seu repositório local com o novo nome da ramificação remota, execute. **git remote update *remote-name***

   Por exemplo, para atualizar a lista de ramificações disponíveis para o CodeCommit repositório com o apelido`origin`:

   ```
   git remote update origin 
   ```
**nota**  
Como alternativa, você pode executar o seguinte **git fetch**. Você também pode visualizar todas as ramificações remotas executando **git branch --all**, mas até que você atualize a lista do repositório local, a ramificação remota que você criou não aparecerá nela.   
Para obter mais opções, consulte a documentação do Git.

1. Para configurar uma ramificação no repositório local que esteja conectada à nova ramificação no CodeCommit repositório, execute. **git checkout *remote-branch-name***

**nota**  
 Para obter uma lista dos nomes dos CodeCommit repositórios e seus URLs, execute o **git remote -v** comando.

# Limite os envios e fusões às ramificações em AWS CodeCommit
<a name="how-to-conditional-branch"></a>

Por padrão, qualquer usuário do CodeCommit repositório que tenha permissões suficientes para enviar código para o repositório pode contribuir com qualquer ramificação desse repositório. Isso é válido independentemente de você adicionar uma ramificação ao repositório usando o console, a linha de comando ou o Git. No entanto, você pode desejar configurar uma ramificação para que apenas alguns usuários do repositório possam enviar por push ou mesclar o código para essa ramificação. Por exemplo, você pode desejar configurar uma ramificação usada para o código de produção para que apenas um subconjunto de desenvolvedores sênior possam enviar por push ou mesclar as alterações para essa ramificação. Outros desenvolvedores ainda podem acionar essa ramificação, fazer suas próprias ramificações e criar solicitações de pull, mas não podem enviar por push ou mesclar as alterações para essa ramificação. Você pode configurar esse acesso criando uma política condicional que usa uma chave de contexto para uma ou mais ramificações no IAM. 

**nota**  
Para concluir alguns dos procedimentos deste tópico, você deve fazer login com um usuário administrativo que tenha permissões suficientes para configurar e aplicar as políticas do IAM. Para obter mais informações, consulte [Criação de um usuário administrador e grupo do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html). 

**Topics**
+ [Configure uma política do IAM para limitar envios por push e mesclagens para ramificações](#how-to-conditional-branch-create-policy)
+ [Aplicar a política do IAM a um grupo ou perfil do IAM](#how-to-conditional-branch-apply-policy)
+ [Teste a política](#how-to-conditional-branch-test)

## Configure uma política do IAM para limitar envios por push e mesclagens para ramificações
<a name="how-to-conditional-branch-create-policy"></a>

Você pode criar uma política no IAM que impede os usuários de atualizar uma ramificação, incluindo confirmações de push e mesclagens de solicitações pull para ramificações. Para fazer isso, a sua política usa uma instrução condicional, de modo que o efeito da instrução `Deny` se aplica somente se a condição for atendida. O APIs que você inclui na `Deny` declaração determina quais ações não são permitidas. Você pode configurar essa política para aplicar a apenas uma ramificação em um repositório, a uma série de ramificações em um repositório ou a todas as ramificações que correspondem aos critérios em todos os repositórios em uma conta da Amazon Web Services. <a name="how-to-conditional-branch-create-policy-procedure"></a>

**Criar uma política condicional para ramificações**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas**. 

1. Selecione **Criar política**.

1. Escolha **JSON** e, em seguida, cole o seguinte exemplo de política. Substitua o valor do `Resource` pelo ARN do repositório que contém a ramificação à qual você deseja restringir o acesso. Substitua o valor de `codecommit:References` por uma referência à ramificação ou ramificações às quais você deseja restringir o acesso. Por exemplo, essa política nega o envio de confirmações, mesclagem e exclusão de ramificações, exclusão de arquivos, mesclagem de solicitações pull e a inclusão de arquivos a uma ramificação chamada *`main`* e uma ramificação chamada `prod` em um repositório chamado `MyDemoRepo`:

------
#### [ 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"
                   }
               }
           }
       ]
   }
   ```

------

   Ramificações no Git são meros ponteiros (referências) ao valor SHA-1 da confirmação head, e é por isso que a condição usa `References`. A instrução `Null` é necessária em qualquer política cujo efeito seja `Deny` e na qual `GitPush` seja uma das ações. Isso é necessário devido à forma como o Git e `git-receive-pack` funcionam ao enviar alterações por push de um repositório local ao CodeCommit.
**dica**  
Para criar uma política que se aplica a todas as ramificações chamadas de principal em todos os repositórios em uma conta da Amazon Web Services, altere o valor de `Resource` de um ARN de repositório para um asterisco (`*`). 

1. Selecione **Revisar política**. Corrija todos os erros na sua declaração de política e, em seguida, continue a **Create policy** (Criar política).

1. Quando o JSON é validado, a página **Create policy** (Criar política) é exibida. Um aviso é exibido na seção **Summary (Resumo)**, informando que essa política não concede permissões. Isso é esperado. 
   + Em **Name (Nome)**, insira um nome para essa política, como **DenyChangesToMain**.
   + Em **Description (Descrição)**, insira uma descrição da finalidade da política. Isso é opcional, mas recomendado.
   + Selecione **Criar política**.

## Aplicar a política do IAM a um grupo ou perfil do IAM
<a name="how-to-conditional-branch-apply-policy"></a>

Você criou uma política que limita envios via push e mesclagens para ramificações, mas a política não terá efeito até você aplicá-la a um grupo, perfil ou usuário do IAM. Como prática recomendada, considere aplicar a política a um grupo ou perfil do IAM. Aplicar políticas a usuários do IAM individuais não escala bem.<a name="how-to-conditional-branch-apply-policy-procedure"></a>

**Aplicar a política condicional a um grupo ou função**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, se você quer aplicar a política a um grupo do IAM, selecione **Grupos**. Se você quer aplicar a política a um perfil que os usuários assumirão, escolha **Perfil**. Escolha o nome do grupo ou função.

1. Na guia **Permissions**, escolha **Attach Policy**.

1. Selecione a política condicional que você criou na lista de políticas e, em seguida, escolha **Attach policy** (Anexar política).

Para obter mais informações, consulte [Anexar e desanexar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Teste a política
<a name="how-to-conditional-branch-test"></a>

Você deve testar os efeitos da política que aplicou no grupo ou função para garantir que ela funcione como esperado. Há muitas maneiras de fazer isso. Por exemplo, para testar uma política semelhante à exibida acima, você pode:
+ Faça login no CodeCommit console com um usuário do IAM que seja membro de um grupo do IAM que tenha a política aplicada ou assuma uma função que tenha a política aplicada. No console, adicione um arquivo na ramificação em que as restrições se aplicam. Você verá uma mensagem de erro ao tentar salvar um arquivo ou fazer upload dele para essa ramificação. Adicionar um arquivo a uma ramificação diferente. A operação deve ser bem-sucedida.
+ Faça login no CodeCommit console com um usuário do IAM que seja membro de um grupo do IAM que tenha a política aplicada ou assuma uma função que tenha a política aplicada. Crie uma solicitação pull que seja mesclada com a ramificação na qual as restrições se aplicam. Você deve ser capaz de criar a solicitação pull, mas obterá um erro se tentar mesclar essa solicitação. 
+ No terminal ou na linha de comando, crie uma confirmação na ramificação em que as restrições se aplicam e, em seguida, envie essa confirmação para o CodeCommit repositório. Você verá uma mensagem de erro. Confirmações e envios por push feitas de outras ramificações devem funcionar normalmente.

# Veja os detalhes da filial em AWS CodeCommit
<a name="how-to-view-branch-details"></a>

Você pode usar o CodeCommit console para ver detalhes sobre as ramificações em um CodeCommit repositório. Você pode ver a data da última confirmação para uma ramificação, a mensagem de confirmação e muito mais. Você também pode usar o AWS CLI ou o Git de um repositório local conectado ao repositório. CodeCommit 

**Topics**
+ [Visualizar detalhes de ramificação (console)](#how-to-view-branch-details-console)
+ [Visualizar detalhes de ramificação (Git)](#how-to-view-branch-details-git)
+ [Visualizar detalhes de ramificação (AWS CLI)](#how-to-view-branch-details-cli)

## Visualizar detalhes de ramificação (console)
<a name="how-to-view-branch-details-console"></a>

Use o CodeCommit console para visualizar rapidamente uma lista de ramificações do seu repositório e detalhes sobre as ramificações.

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja visualizar detalhes da ramificação. 

1. No painel de navegação, escolha **Branches**.  
![\[Uma visualização de ramificações em um repositório.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-branches.png)

1. O nome da ramificação usada como padrão para o repositório é exibido próximo a **Ramificação padrão**. Para visualizar detalhes sobre a confirmação mais recente para uma ramificação, escolha a ramificação e, em seguida, escolha **View last commit (Visualizar última confirmação)**. Para visualizar os arquivos e o código em uma ramificação, escolha o nome da ramificação. 

## Visualizar detalhes de ramificação (Git)
<a name="how-to-view-branch-details-git"></a>

Para usar o Git de um repositório local para ver detalhes sobre as ramificações de rastreamento local e remoto de um CodeCommit repositório, execute o comando. **git branch**

As etapas a seguir foram escritas com a suposição de que você já conectou o repositório local ao CodeCommit repositório. Para instruções, consulte [Conexão a um repositório](how-to-connect.md).

1. Execute o comando **git branch** especificando a opção **--all**.

   ```
   git branch --all
   ```

1. Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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

   O asterisco (`*`) aparece próximo à ramificação aberta atualmente. As entradas depois disso são referências de rastreamento remoto.
**dica**  
**git branch** mostra ramificações locais.  
**git branch -r** mostra ramificações remotas.  
**git checkout *existing-branch-name*** alterna para o nome da ramificação especificada e, se **git branch** for executado imediatamente após, exibe-o com um asterisco (`*`).  
**git remote update *remote-name***atualiza seu repositório local com a lista de ramificações disponíveis do CodeCommit repositório. (Para obter uma lista dos nomes dos CodeCommit repositórios e seus URLs, execute o **git remote -v** comando.)

Para obter mais opções, consulte a documentação do Git.

## Visualizar detalhes de ramificação (AWS CLI)
<a name="how-to-view-branch-details-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

Para usar o AWS CLI para visualizar detalhes sobre as ramificações em um CodeCommit repositório, execute um ou mais dos seguintes comandos:
+ Para visualizar uma lista de nomes de ramificação, execute [list-branches](#how-to-view-branch-details-cli).
+ Para visualizar informações sobre uma ramificação específica, execute [get-branch](#how-to-view-branch-details-cli-details).

### Como visualizar uma lista de nomes de ramificação
<a name="how-to-view-branch-details-cli-list"></a>

1. Execute o **list-branches** comando, especificando o nome do CodeCommit repositório (com a `--repository-name` opção).
**dica**  
Para obter o nome do CodeCommit repositório, execute o comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).

   Por exemplo, para ver detalhes sobre as ramificações em um CodeCommit repositório chamado`MyDemoRepo`:

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

1. Se houver êxito, o comando gerará como saída um objeto `branchNameList`, com uma entrada para cada ramificação.

   Veja um exemplo de saída com base no comando do exemplo anterior:

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

### Como visualizar informações sobre uma ramificação
<a name="how-to-view-branch-details-cli-details"></a>

1. Execute o comando **get-branch**, especificando:
   + O nome do repositório (com a opção **--repository-name**).
   + O nome do ramificação (com a opção **--branch-name**).

   Por exemplo, para visualizar informações sobre uma ramificação nomeada `MyNewBranch` em um CodeCommit repositório chamado`MyDemoRepo`:

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

1. Se houver êxito, o comando gerará como saída o nome da ramificação e o ID da última confirmação feita a ela.

   Veja um exemplo de saída com base no comando do exemplo anterior:

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

# Compare e mescle filiais em AWS CodeCommit
<a name="how-to-compare-branches"></a>

Você pode usar o CodeCommit console para comparar ramificações em um CodeCommit repositório. A comparação de ramificações ajuda você a exibir rapidamente as diferenças entre uma ramificação e a ramificação padrão ou a exibir as diferenças entre as duas ramificações.

**Topics**
+ [Comparar uma ramificação com a ramificação padrão](#how-to-compare-branches-default)
+ [Comparar duas ramificações específicas](#how-to-compare-branches-two)
+ [Mesclar duas ramificações (AWS CLI)](#how-to-merge-branches-cli)

## Comparar uma ramificação com a ramificação padrão
<a name="how-to-compare-branches-default"></a>

Use o CodeCommit console para visualizar rapidamente as diferenças entre uma ramificação e a ramificação padrão do seu repositório.

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja comparar as ramificações. 

1. No painel de navegação, selecione **Commits (Confirmações)** e, em seguida, escolha a guia **Compare commits (Comparar confirmações)**.

1. Em **Destination (Destino)**, escolha o nome da ramificação padrão. Em **Source (Origem)**, escolha a ramificação que deseja comparar à ramificação padrão. Escolha **Compare**.

## Comparar duas ramificações específicas
<a name="how-to-compare-branches-two"></a>

Use o CodeCommit console para ver as diferenças entre duas ramificações que você deseja comparar.

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja comparar as ramificações. 

1. No painel de navegação, selecione **Commits (Confirmações)** e, em seguida, escolha a guia **Compare commits (Comparar confirmações)**.

1. Em **Destination (Destino)** e **Source (Origem)**, escolha as duas ramificações para comparar e depois escolha **Compare (Comparar)**. Para exibir a lista de arquivos alterados, expanda a lista de arquivos alterados. Você pode ver as alterações nos arquivos lado a lado (visualização dividida) ou embutida (exibição unificada).
**nota**  
Se você entrou como um usuário do IAM, é possível configurar e salvar suas preferências para visualizar o código e outras configurações do console. Para obter mais informações, consulte [Trabalhar com preferências do usuário](user-preferences.md).  
![\[Uma visualização abreviada das diferenças entre duas ramificações.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-compare-branches.png)

## Mesclar duas ramificações (AWS CLI)
<a name="how-to-merge-branches-cli"></a>

Você pode mesclar duas ramificações em um CodeCommit repositório AWS CLI usando uma das estratégias de mesclagem disponíveis executando um dos seguintes comandos:
+ Para mesclar duas ramificações usando a estratégia de mesclagem de avanço rápido, execute o comando [**merge-branches-by-fast-forward**](#merge-branches-by-fast-forward).
+ Para mesclar duas ramificações usando a estratégia de mesclagem de compressão, execute o comando [**merge-branches-by-squash**](#merge-branches-by-squash).
+ Para mesclar duas ramificações usando a estratégia de mesclagem de três vias, execute o comando [**merge-branches-by-three-way**](#merge-branches-by-three-way).

Também é possível testar mesclagens executando o comando **create-unreferenced-merge-commit**. Para obter mais informações, consulte [Resolver conflitos em uma solicitação pull](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit).

**nota**  
Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

**Para usar o AWS CLI para mesclar duas ramificações em um repositório CodeCommit**

1. <a name="merge-branches-by-fast-forward"></a>Para mesclar duas ramificações usando a estratégia de mesclagem de avanço rápido, execute o comando **merge-branches-by-fast-forward**, especificando: 
   + O nome da ramificação de origem que contém as alterações que você deseja mesclar (com a opção **--source-commit-specifier**). 
   + O nome da ramificação de destino na qual você deseja mesclar as alterações (com a opção **--destination-commit-specifier**). 
   + O nome do repositório (com a opção **--repository-name**).

    Por exemplo, para mesclar uma ramificação de origem nomeada *bugfix-1234* em uma ramificação de destino nomeada *preprod* em um repositório chamado: *MyDemoRepo*

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

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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

1. <a name="merge-branches-by-squash"></a>Para mesclar duas ramificações usando a estratégia de mesclagem de compressão, execute o comando **merge-branches-by-squash**, especificando:
   + O nome da ramificação de origem que contém as alterações que você deseja mesclar (com a opção **--source-commit-specifier**). 
   + O nome da ramificação de destino na qual você deseja mesclar as alterações (com a opção **--destination-commit-specifier**). 
   + O nome do repositório (com a opção **--repository-name**).
   + A mensagem de confirmação a ser incluída (com a opção **--commit-message**).
   + O nome a ser usado para a confirmação (com a opção **--name**).
   + O endereço de e-mail a ser usado para a confirmação (com a opção **--email**).

   Por exemplo, para mesclar uma ramificação de origem nomeada *bugfix-bug1234* com uma ramificação de destino nomeada *bugfix-quarterly* em um repositório chamado: *MyDemoRepo*

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

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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

1. <a name="merge-branches-by-three-way"></a>Para mesclar duas ramificações usando a estratégia de mesclagem de três vias, execute o comando **merge-branches-by-three-way**, especificando:
   + O nome da ramificação de origem que contém as alterações que você deseja mesclar (com a opção **--source-commit-specifier**). 
   + O nome da ramificação de destino na qual você deseja mesclar as alterações (com a opção **--destination-commit-specifier**). 
   + O nome do repositório (com a opção **--repository-name**).
   + A mensagem de confirmação a ser incluída (com a opção **--commit-message**).
   + O nome a ser usado para a confirmação (com a opção **--name**).
   + O endereço de e-mail a ser usado para a confirmação (com a opção **--email**).

   Por exemplo, para mesclar uma ramificação de origem nomeada *main* com uma ramificação de destino nomeada *bugfix-1234* em um repositório chamado: *MyDemoRepo*

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

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

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

# Alterar as configurações da ramificação em AWS CodeCommit
<a name="how-to-change-branch"></a>

Você pode alterar qual ramificação usar como ramificação padrão no AWS CodeCommit console ou com AWS CLI o. Por exemplo, se você criou sua primeira confirmação usando um cliente Git que definiu a ramificação padrão como *master*, você pode criar uma ramificação chamada *principal* e, em seguida, alterar as configurações da ramificação para que a nova ramificação seja definida como a ramificação padrão do repositório. Para alterar as configurações de outras ramificações, você pode usar o Git de um repositório local conectado ao repositório. CodeCommit 

**Topics**
+ [Alterar a ramificação padrão (console)](#how-to-change-branch-console)
+ [Alterar a ramificação padrão (AWS CLI)](#how-to-change-branch-cli)

## Alterar a ramificação padrão (console)
<a name="how-to-change-branch-console"></a>

Você pode especificar qual ramificação é a ramificação padrão em um CodeCommit repositório no AWS CodeCommit console. 

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja alterar as configurações. 

1. No painel de navegação, selecione **Configurações**.

1. Em **Default branch (Ramificação padrão)**, selecione a lista suspensa de ramificações e escolha uma outra ramificação. Escolha **Salvar**.
**dica**  
Se você não vê outra ramificação na lista suspensa, então você não criou nenhuma ramificação adicional. Você não pode alterar a ramificação padrão de um repositório se o repositório tiver apenas uma ramificação. Para obter mais informações, consulte [Crie uma filial em AWS CodeCommit](how-to-create-branch.md).
Se você não vê a seção **Ramificação padrão**, mas vê itens para regras de notificação e conexões, você está no menu de configurações gerais do console. O menu de configurações dos repositórios está listado em **Repositórios**, no mesmo nível de **Código** e **Solicitações pull**.

## Alterar a ramificação padrão (AWS CLI)
<a name="how-to-change-branch-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

Para usar o AWS CLI para alterar as configurações de ramificação de um repositório em um CodeCommit repositório, execute o seguinte comando:
+ [update-default-branch](#how-to-change-branch-cli-default) para alterar a ramificação padrão.

### Como alterar a ramificação padrão
<a name="how-to-change-branch-cli-default"></a>

1. Execute o comando **update-default-branch**, especificando:
   + O nome do CodeCommit repositório em que a ramificação padrão é atualizada (com a **--repository-name** opção).
**dica**  
Para obter o nome do CodeCommit repositório, execute o comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + O nome da nova ramificação padrão (com a opção **--default-branch-name**).
**dica**  
Para obter o nome da ramificação, execute o comando [list-branches](how-to-view-branch-details.md#how-to-view-branch-details-cli).

1. Por exemplo, para alterar a ramificação padrão para `MyNewBranch` em um CodeCommit repositório chamado`MyDemoRepo`:

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

   Esse comando gerará saídas somente se houver erros.

Para obter mais opções, consulte a documentação do Git.

# Excluir uma ramificação em AWS CodeCommit
<a name="how-to-delete-branch"></a>

Você pode usar o CodeCommit console para excluir uma ramificação em um repositório. A exclusão de uma ramificação em CodeCommit não exclui essa ramificação em um repositório local, portanto, os usuários podem continuar a ter cópias dessa ramificação até a próxima vez que fizerem as alterações. Para excluir uma ramificação localmente e enviar essa alteração para o CodeCommit repositório, use o Git de um repositório local conectado ao repositório. CodeCommit 

A exclusão de uma ramificação não exclui confirmações, mas exclui todas as referências às confirmações nessa ramificação. Se você excluir uma ramificação que contém confirmações que não foram mescladas em outra ramificação no repositório, não poderá recuperar essas confirmações a menos que tenha a confirmação completa. IDs 

**nota**  
Você não pode usar as instruções neste tópico para excluir a ramificação padrão de um repositório. Se você deseja excluir a ramificação padrão, crie uma ramificação, defina a nova ramificação como padrão e, em seguida, exclua a antiga. Para obter mais informações, consulte [Criar uma ramificação](how-to-create-branch.md) e [Alterar configurações de ramificação](how-to-change-branch.md).

**Topics**
+ [Excluir uma ramificação (console)](#how-to-delete-branch-console)
+ [Excluir uma ramificação (AWS CLI)](#how-to-delete-branch-cli)
+ [Excluir uma ramificação (Git)](#how-to-delete-branch-git)

## Excluir uma ramificação (console)
<a name="how-to-delete-branch-console"></a>

Você pode usar o CodeCommit console para excluir uma ramificação em um CodeCommit repositório. 

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja excluir uma ramificação. 

1. No painel de navegação, escolha **Branches**.

1. Encontre o nome da ramificação que você deseja excluir, selecione **Delete branch (Excluir ramificação)** e confirme sua escolha.

## Excluir uma ramificação (AWS CLI)
<a name="how-to-delete-branch-cli"></a>

Você pode usar o AWS CLI para excluir uma ramificação em um CodeCommit repositório, se essa ramificação não for a ramificação padrão do repositório. Para obter mais informações sobre como instalar e usar o AWS CLI, consulte[Referência da linha de comando](cmd-ref.md). 

1. No terminal ou na linha de comando, execute o comando **delete-branch**, especificando:
   + O nome do CodeCommit repositório em que a ramificação será excluída (com a **--repository-name** opção).
**dica**  
Para obter o nome do CodeCommit repositório, execute o comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + O nome da ramificação a ser excluída (com a opção **branch-name**).
**dica**  
Para obter o nome da ramificação, execute o comando [list-branches](how-to-view-branch-details.md#how-to-view-branch-details-cli).

1. Por exemplo, para excluir uma ramificação nomeada `MyNewBranch` em um CodeCommit repositório chamado`MyDemoRepo`:

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

   Esse comando retorna informações sobre a ramificação excluída, incluindo o nome da ramificação excluída e o ID de confirmação completo da confirmação que era o cabeçalho da ramificação. Por exemplo:

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

## Excluir uma ramificação (Git)
<a name="how-to-delete-branch-git"></a>

Siga estas etapas para usar o Git de um repositório local para excluir uma ramificação em um repositório. CodeCommit 

Essas etapas são escritas com a suposição de que você já conectou o repositório local ao CodeCommit repositório. Para instruções, consulte [Conexão a um repositório](how-to-connect.md).

1. Para excluir a ramificação do repositório local, execute o **git branch -D *branch-name*** comando onde *branch-name* está o nome da ramificação que você deseja excluir.
**dica**  
Para obter uma lista de nomes de ramificação, execute **git branch --all**.

   Por exemplo, para excluir uma ramificação do repositório local chamada `MyNewBranch`:

   ```
   git branch -D MyNewBranch
   ```

1. Para excluir a ramificação do CodeCommit repositório, execute o **git push *remote-name* --delete *branch-name*** comando em que *remote-name* é o apelido que o repositório local usa para o CodeCommit repositório e *branch-name* é o nome da ramificação que você deseja excluir do repositório. CodeCommit 
**dica**  
Para obter uma lista dos nomes dos CodeCommit repositórios e seus URLs, execute o **git remote -v** comando.

   Por exemplo, para excluir uma ramificação nomeada `MyNewBranch` no CodeCommit repositório chamada`origin`:

   ```
   git push origin --delete MyNewBranch
   ```
**dica**  
Esse comando não excluirá a ramificação se ela for padrão.

Para obter mais opções, consulte a documentação do Git.