

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Trabajar con ramas en los AWS CodeCommit repositorios
<a name="branches"></a>

¿Qué es una ramificación? En Git, las ramificaciones son indicadores o referencias a una confirmación. Durante el desarrollo, son una cómoda forma de organizar el trabajo. Puede utilizar las ramificaciones para separar el trabajo en una versión de los archivos nueva o diferente sin que ello afecte al trabajo en otras ramificaciones. Puede utilizar las ramificaciones para desarrollar nuevas características, guardar una versión específica del proyecto de una determinada confirmación y mucho más. Al crear su primera confirmación, se crea una *ramificación predeterminada* para usted. Esta ramificación predeterminada es la que se utiliza como base o ramificación predeterminada en los repositorios (repos) locales cuando los usuarios clonan el repositorio. El nombre de esa ramificación predeterminada varía en función de cómo cree su primera confirmación. Si agregas el primer archivo al repositorio mediante la CodeCommit consola AWS CLI SDKs, el nombre de esa rama predeterminada o uno de ellos será *main*. Esta es la ramificación predeterminada en todos los ejemplos de esta guía. Si envía su primera confirmación con un cliente Git, el nombre de la ramificación predeterminada es el que el cliente Git especifique como predeterminado. Considere configurar su cliente de Git para que use *principal* como nombre de la ramificación inicial.

En CodeCommit, puedes cambiar la rama predeterminada de tu repositorio. También puede crear y eliminar ramificaciones y consultar información más detallada sobre una ramificación. Puede comparar rápidamente una ramificación con la ramificación predeterminada (o dos ramificaciones cualesquiera). Para ver el historial de ramificaciones y combinaciones del repositorio, puede utilizar [Commit Visualizer](how-to-view-commit-details.md#how-to-view-commit-details-console-visualizer), que se muestra en el siguiente gráfico.

![\[Vista de las ramificaciones de un repositorio\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-cv-complex1.png)


Para obtener información sobre cómo trabajar con otros aspectos de tu repositorio en CodeCommit [Trabajar con repositorios](repositories.md)[Trabajar con archivos](files.md),[Trabajo con solicitudes de extracción](pull-requests.md),[Uso de confirmaciones](commits.md), y[Trabajo con las preferencias del usuario](user-preferences.md). 

**Topics**
+ [Crea una rama en AWS CodeCommit](how-to-create-branch.md)
+ [Limite los empujes y las fusiones a las ramificaciones AWS CodeCommit](how-to-conditional-branch.md)
+ [Consulta los detalles de la sucursal en AWS CodeCommit](how-to-view-branch-details.md)
+ [Compare y combine ramas en AWS CodeCommit](how-to-compare-branches.md)
+ [Cambie la configuración de la sucursal en AWS CodeCommit](how-to-change-branch.md)
+ [Eliminar una rama en AWS CodeCommit](how-to-delete-branch.md)

# Crea una rama en AWS CodeCommit
<a name="how-to-create-branch"></a>

Puede utilizar la CodeCommit consola o la AWS CLI para crear ramas para el repositorio. Se trata de una forma rápida de separar el trabajo en una versión de los archivos nueva o diferente sin que ello afecte al trabajo en la ramificación predeterminada. Después de crear una rama en la CodeCommit consola, debes transferir ese cambio a tu repositorio local. Como alternativa, puedes crear una rama localmente y luego usar Git desde un repositorio local conectado al CodeCommit repositorio para impulsar ese cambio. 

**Topics**
+ [Creación de una ramificación (consola)](#how-to-create-branch-console)
+ [Creación de una ramificación (Git)](#how-to-create-branch-git)
+ [Creación de una ramificación (AWS CLI)](#how-to-create-branch-cli)

## Creación de una ramificación (consola)
<a name="how-to-create-branch-console"></a>

Puedes usar la CodeCommit consola para crear una rama en un CodeCommit repositorio. La próxima vez que los usuarios envíen cambios desde el repositorio, ven la nueva ramificación.

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio en el que desea crear la ramificación. 

1. En el panel de navegación, seleccione **Branches**.

1. Seleccione **Create branch**.   
![\[Crear una rama en la consola. CodeCommit\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-branches-create.png)

   En **Branch name (Nombre de ramificación)**, introduzca un nombre para la ramificación. En **Branch from (Origen de ramificación)**, seleccione una ramificación o una etiqueta de la lista o pegue un ID de confirmación. Seleccione **Create branch**.

## Creación de una ramificación (Git)
<a name="how-to-create-branch-git"></a>

Sigue estos pasos para usar Git desde un repositorio local para crear una rama en un repositorio local y luego enviar esa rama al CodeCommit repositorio.

Estos pasos se escriben partiendo del supuesto de que ya has conectado el repositorio local al repositorio. CodeCommit Para obtener instrucciones, consulte [Conectarse a un repositorio](how-to-connect.md).

1. Crea una rama en tu repositorio local ejecutando el **git checkout -b *new-branch-name*** comando, donde *new-branch-name* está el nombre de la nueva rama.

   Por ejemplo, el siguiente comando crea una ramificación denominada `MyNewBranch` en el repositorio local:

   ```
   git checkout -b MyNewBranch
   ```

1. Para enviar la nueva rama del repositorio local al CodeCommit repositorio, ejecuta el **git push** comando especificando tanto la rama como ***remote-name*** la. ***new-branch-name*** 

   Por ejemplo, para insertar una nueva rama en el repositorio local con el nombre `MyNewBranch` del CodeCommit repositorio con el apodo: `origin`

   ```
   git push origin MyNewBranch
   ```

**nota**  
Si agrega la `-u` opción a **git push** (por ejemplo,**git push -u origin main**), en el futuro podrá ejecutar **git push** sin ella *remote-name**branch-name*. Se establece la información de seguimiento ascendente. Para obtener información de seguimiento ascendente, ejecute **git remote show *remote-name*** (por ejemplo, **git remote show origin**).  
Para ver una lista de todas las ramificaciones de seguimiento remoto, ejecute **git branch --all**.  
Para configurar una rama en el repositorio local que esté conectada a una rama del CodeCommit repositorio, ejecuta**git checkout *remote-branch-name***.

Para ver más opciones, consulte la documentación de Git.

## Creación de una ramificación (AWS CLI)
<a name="how-to-create-branch-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Siga estos pasos para usar el AWS CLI para crear una rama en un CodeCommit repositorio y, a continuación, enviar esa rama al CodeCommit repositorio. Para ver los pasos para crear una confirmación inicial y especificar el nombre de la ramificación predeterminada para un repositorio vacío, consulte [Crear la primera confirmación para un repositorio mediante AWS CLI](how-to-create-commit.md#create-first-commit).

1. Ejecute el comando **create-branch**, especificando:
   + El nombre del CodeCommit repositorio en el que se crea la rama (con la **--repository-name** opción).
**nota**  
Para obtener el nombre del CodeCommit repositorio, ejecute el comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + El nombre de la nueva ramificación (con la opción **--branch-name**).
   + El ID de la confirmación a la que apunta la nueva ramificación (con la opción **--commit-id**).

   Por ejemplo, para crear una rama con un nombre `MyNewBranch` que apunte al ID de confirmación `317f8570EXAMPLE` en un CodeCommit repositorio llamado: `MyDemoRepo`

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

   Este comando devuelve resultados solo si hay errores.

1. Para actualizar la lista de ramas de CodeCommit repositorio disponibles en tu repositorio local con el nombre de la nueva rama remota, ejecuta**git remote update *remote-name***.

   Por ejemplo, para actualizar la lista de sucursales disponibles para el CodeCommit repositorio con el apodo`origin`:

   ```
   git remote update origin 
   ```
**nota**  
Si lo desea, también puede ejecutar el comando **git fetch**. También puede ver todas las ramificaciones remotas ejecutando **git branch --all**, pero hasta que actualice la lista de su repositorio local, la ramificación remota que ha creado no aparece en la lista.   
Para ver más opciones, consulte la documentación de Git.

1. Para configurar una rama en el repositorio local que esté conectada a la nueva rama del CodeCommit repositorio, ejecuta**git checkout *remote-branch-name***.

**nota**  
 Para obtener una lista de los nombres de los CodeCommit repositorios y sus nombres URLs, ejecuta el **git remote -v** comando.

# Limite los empujes y las fusiones a las ramificaciones AWS CodeCommit
<a name="how-to-conditional-branch"></a>

De forma predeterminada, cualquier usuario del CodeCommit repositorio que tenga permisos suficientes para insertar código en el repositorio puede contribuir a cualquier rama de ese repositorio. Esto se aplica independientemente de cómo se agregue una ramificación al repositorio, ya sea desde la consola, la línea de comandos o Git. Sin embargo, es posible que desee configurar una ramificación de tal forma que solo algunos usuarios del repositorio puedan insertar o combinar el código en ella. Por ejemplo, puede que desee configurar una ramificación que se use para el código de producción de modo que únicamente un subconjunto de los desarrolladores sénior puedan insertar o combinar cambios en ella. Los demás desarrolladores podrán extraer código de la ramificación, crear sus propias ramificaciones y crear solicitudes de extracción, pero no podrán insertar ni combinar cambios en ella. Para configurar este acceso, se crea una política condicional que usa una clave de contexto para una o varias ramificaciones de IAM. 

**nota**  
Para completar algunos de los procedimientos de este tema, debe iniciar sesión con un usuario administrativo que tenga permisos suficientes para configurar y aplicar políticas de IAM. Para obtener más información, consulte [Creación de un grupo y usuario administrador de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html). 

**Topics**
+ [Configuración de una política de IAM para limitar las inserciones y combinaciones en una ramificación](#how-to-conditional-branch-create-policy)
+ [Aplicación de una política de IAM a un grupo o rol de IAM](#how-to-conditional-branch-apply-policy)
+ [Comprobación de la política](#how-to-conditional-branch-test)

## Configuración de una política de IAM para limitar las inserciones y combinaciones en una ramificación
<a name="how-to-conditional-branch-create-policy"></a>

Puede crear una política en IAM que impida que los usuarios actualicen una ramificación, lo que incluye insertar confirmaciones y combinar solicitudes de extracción en ella. Para ello, la política usa una instrucción condicional, de tal forma que el efecto de la instrucción `Deny` se aplique únicamente si se cumple la condición. Lo APIs que incluya en la `Deny` declaración determinará qué acciones no están permitidas. Puede configurar esta política de modo que solo se aplique a una ramificación del repositorio, a varias de ellas en el mismo repositorio o a todas las ramificaciones que coincidan con los criterios de todos los repositorios de una cuenta de Amazon Web Services. <a name="how-to-conditional-branch-create-policy-procedure"></a>

**Para crear una política condicional para las ramificaciones**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas**. 

1. Elija **Crear política**.

1. Elija **JSON** y, a continuación, pegue la siguiente política de ejemplo. Reemplace el valor de `Resource` por el ARN del repositorio que contenga la ramificación a la que desee restringir el acceso. Reemplace el valor `codecommit:References` por una referencia a la ramificación o ramificaciones a las que desee restringir el acceso. Por ejemplo, esta política deniega el envío de confirmaciones, la fusión de ramificaciones, la eliminación de ramificaciones, la eliminación de archivos, la fusión de solicitudes de extracción y la adición de archivos a una ramificación denominada *`main`* y a una ramificación denominada `prod` en un repositorio denominado `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"
                   }
               }
           }
       ]
   }
   ```

------

   Las ramificaciones en Git son meros indicadores (referencias) al valor SHA-1 de la confirmación HEAD, que es el motivo por el que se usa `References` en la condición. La instrucción `Null` es obligatoria en todas las políticas cuyo efecto sea `Deny` y en las que una de las acciones sea `GitPush`. Es obligatoria por la forma en que funcionan Git y `git-receive-pack` al insertar los cambios de un repositorio local en CodeCommit.
**sugerencia**  
Para crear una política que se aplique a todas las ramificaciones denominadas "principal" de todos los repositorios de una cuenta de Amazon Web Services, cambie el valor de `Resource` por un asterisco (`*`) en lugar del ARN del repositorio. 

1. Elija **Revisar política**. Corrija los errores de la instrucción de la política y, a continuación, continúe con **Create policy (Crear política)**.

1. Cuando se valida el código JSON, aparece la página **Create policy (Crear política)**. Se muestra una advertencia en la sección **Summary (Resumen)** que le informa de que esta política no concede permisos. Esto es normal. 
   + En **Name (Nombre)**, escriba un nombre para esta política; por ejemplo, **DenyChangesToMain**.
   + En **Description (Descripción)**, introduzca una descripción de la finalidad de la política. Esto es opcional, pero recomendable.
   + Elija **Crear política**.

## Aplicación de una política de IAM a un grupo o rol de IAM
<a name="how-to-conditional-branch-apply-policy"></a>

Ha creado una política que limita las inserciones y combinaciones en una ramificación. Sin embargo, la política no surte ningún efecto hasta que se aplica a un usuario, grupo o rol de IAM. La práctica recomendada es aplicar la política a un grupo o función de IAM. Si las políticas se aplican a usuarios de IAM individuales, el escalado no se realiza correctamente.<a name="how-to-conditional-branch-apply-policy-procedure"></a>

**Para aplicar la política condicional a un grupo o función**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación, si desea aplicar la política a un grupo de IAM, seleccione **Grupos**. Si desea aplicar la política a una función asumida por los usuarios, seleccione **Rol**. Seleccione el nombre del grupo o la función.

1. En la pestaña **Permissions**, elija **Attach Policy**.

1. Seleccione la política condicional que ha creado en la lista de políticas y, a continuación, elija **Attach policy (Adjuntar política)**.

Para obtener más información, consulte [Conectar y separar políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Comprobación de la política
<a name="how-to-conditional-branch-test"></a>

Debe probar los efectos de la política que ha aplicado al grupo o función para asegurarse de que actúa según lo previsto. Existen muchas formas de realizar esta operación. Por ejemplo, para probar una política similar a la que se muestra anteriormente, puede hacer lo siguiente:
+ Inicie sesión en la CodeCommit consola con un usuario de IAM que sea miembro de un grupo de IAM al que se haya aplicado la política o que asuma un rol al que se le haya aplicado la política. En la consola, agregue un archivo en la ramificación a la que se aplican las restricciones. Debería aparecer un mensaje de error al intentar guardar o cargar un archivo en esa ramificación. Agregue un archivo a otra ramificación. La operación debería realizarse correctamente.
+ Inicie sesión en la CodeCommit consola con un usuario de IAM que sea miembro de un grupo de IAM al que se haya aplicado la política o que asuma un rol al que se le haya aplicado la política. Cree una solicitud de extracción que se combine con la ramificación a la que se aplican las restricciones. Debería poder crear la solicitud de extracción, pero debería aparecer un error si intenta combinarla. 
+ Desde el terminal o la línea de comandos, crea una confirmación en la rama en la que se aplican las restricciones y, a continuación, envía esa confirmación al CodeCommit repositorio. Debería aparecer un mensaje de error. Las confirmaciones e inserciones realizadas desde otras ramificaciones deberían funcionar normalmente.

# Consulta los detalles de la sucursal en AWS CodeCommit
<a name="how-to-view-branch-details"></a>

Puede usar la CodeCommit consola para ver detalles sobre las ramas de un CodeCommit repositorio. Puede ver la fecha de la última conformación de una ramificación, el mensaje de confirmación y mucho más. También puedes usar Git AWS CLI o Git desde un repositorio local conectado al CodeCommit repositorio.

**Topics**
+ [Ver detalles de las ramificaciones (consola)](#how-to-view-branch-details-console)
+ [Visualización de la información detallada de la ramificación (Git)](#how-to-view-branch-details-git)
+ [Visualización de la información detallada de la ramificación (AWS CLI)](#how-to-view-branch-details-cli)

## Ver detalles de las ramificaciones (consola)
<a name="how-to-view-branch-details-console"></a>

Usa la CodeCommit consola para ver rápidamente una lista de las ramas de tu repositorio y los detalles sobre las ramas.

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio cuyos detalles de ramificación desea ver. 

1. En el panel de navegación, seleccione **Branches**.  
![\[Vista de las ramificaciones de un repositorio.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-branches.png)

1. El nombre de la ramificación que se utiliza como nombre predeterminado para el repositorio aparece junto a la etiqueta **Ramificación predeterminada**. Para ver información detallada sobre las últimas confirmaciones en una ramificación, elija la ramificación y, a continuación, elija **View last commit (Ver última confirmación)**. Para ver los archivos y el código en una ramificación, elija el nombre de la ramificación. 

## Visualización de la información detallada de la ramificación (Git)
<a name="how-to-view-branch-details-git"></a>

Para usar Git desde un repositorio local para ver detalles sobre las ramas de seguimiento local y remoto de un CodeCommit repositorio, ejecuta el **git branch** comando.

Los siguientes pasos se escriben partiendo del supuesto de que ya has conectado el repositorio local al CodeCommit repositorio. Para obtener instrucciones, consulte [Conectarse a un repositorio](how-to-connect.md).

1. Ejecute el comando **git branch** y especifique la opción **--all**:

   ```
   git branch --all
   ```

1. Si se ejecuta correctamente, este comando proporciona información similar a la siguiente:

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

   El asterisco (`*`) aparece junto a la ramificación abierta actualmente. Las entradas que aparecen después son referencias de seguimiento remoto.
**sugerencia**  
**git branch** muestra las ramificaciones locales.  
**git branch -r** muestra las ramificaciones remotas.  
**git checkout *existing-branch-name*** cambia al nombre de ramificación especificado y, si **git branch** se ejecuta inmediatamente después, lo muestra con un asterisco (`*`).  
**git remote update *remote-name***actualiza tu repositorio local con la lista de ramas de CodeCommit repositorio disponibles. (Para obtener una lista de los nombres de los CodeCommit repositorios y sus nombres URLs, ejecuta el **git remote -v** comando).

Para ver más opciones, consulte la documentación de Git.

## Visualización de la información detallada de la ramificación (AWS CLI)
<a name="how-to-view-branch-details-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Para usar el AWS CLI para ver detalles sobre las ramas de un CodeCommit repositorio, ejecute uno o más de los siguientes comandos:
+ Ejecute [list-branches](#how-to-view-branch-details-cli) para ver una lista de los nombres de ramificaciones.
+ Ejecute [get-branch](#how-to-view-branch-details-cli-details) para ver información sobre una ramificación específica.

### Visualización de una lista de los nombres de ramificaciones
<a name="how-to-view-branch-details-cli-list"></a>

1. Ejecute el **list-branches** comando y especifique el nombre del CodeCommit repositorio (con la `--repository-name` opción).
**sugerencia**  
Para obtener el nombre del CodeCommit repositorio, ejecute el comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).

   Por ejemplo, para ver los detalles de las ramas de un CodeCommit repositorio llamado: `MyDemoRepo`

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

1. Si se ejecuta correctamente, este comando emite un objeto `branchNameList` con una entrada para cada ramificación.

   A continuación se muestra un ejemplo de resultado basado en el comando del ejemplo anterior:

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

### Para ver información sobre una ramificación
<a name="how-to-view-branch-details-cli-details"></a>

1. Ejecute el comando **get-branch**, especificando:
   + El nombre del repositorio (con la opción **--repository-name**).
   + El nombre de la ramificación (con la opción **--branch-name**).

   Por ejemplo, para ver información sobre una rama denominada `MyNewBranch` en un CodeCommit repositorio denominado`MyDemoRepo`:

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

1. Si se ejecuta correctamente, este comando emite el nombre de la ramificación y el ID de la última confirmación realizada a la ramificación.

   A continuación se muestra un ejemplo de resultado basado en el comando del ejemplo anterior:

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

# Compare y combine ramas en AWS CodeCommit
<a name="how-to-compare-branches"></a>

Puede usar la CodeCommit consola para comparar las ramas de un CodeCommit repositorio. La comparación de ramificaciones le permite ver rápidamente las diferencias que existen entre una ramificación y la ramificación predeterminada, o ver las diferencias que existen entre dos ramificaciones.

**Topics**
+ [Comparación de una ramificación y la ramificación predeterminada](#how-to-compare-branches-default)
+ [Comparación de dos ramificaciones específicas](#how-to-compare-branches-two)
+ [Combinar dos ramificaciones (AWS CLI)](#how-to-merge-branches-cli)

## Comparación de una ramificación y la ramificación predeterminada
<a name="how-to-compare-branches-default"></a>

Utilice la CodeCommit consola para ver rápidamente las diferencias entre una rama y la rama predeterminada de su repositorio.

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio cuyas ramificaciones desea comparar. 

1. En el panel de navegación, seleccione **Commits (Confirmaciones)** y haga clic en la pestaña **Compare commits (Comparar confirmaciones)**.

1. En **Destination (Destino)**, seleccione el nombre de la ramificación predeterminada. En **Source (Origen)**, elija la ramificación que desee comparar con la ramificación predeterminada. Elija **Compare**.

## Comparación de dos ramificaciones específicas
<a name="how-to-compare-branches-two"></a>

Utilice la CodeCommit consola para ver las diferencias entre las dos ramas que desee comparar.

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio cuyas ramificaciones desea comparar. 

1. En el panel de navegación, seleccione **Commits (Confirmaciones)** y haga clic en la pestaña **Compare commits (Comparar confirmaciones)**.

1. En **Destination (Destino)** y **Source (Origen)**, seleccione las dos ramificaciones que desea comparar y haga clic en **Compare (Comparar)**. Para ver la lista de archivos modificados, amplíe la lista de archivos modificados. Puede ver los cambios en los archivos de forma paralela (vista Split) o en línea (vista Unified).
**nota**  
Si ha iniciado sesión como un usuario de IAM, puede configurar y guardar sus preferencias para ver el código y otros ajustes de la consola. Para obtener más información, consulte [Trabajo con las preferencias del usuario](user-preferences.md).  
![\[Vista abreviada de las diferencias entre dos ramificaciones.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-compare-branches.png)

## Combinar dos ramificaciones (AWS CLI)
<a name="how-to-merge-branches-cli"></a>

Puede combinar dos ramas en un CodeCommit repositorio utilizando una de las AWS CLI estrategias de combinación disponibles ejecutando uno de los siguientes comandos:
+ Para combinar dos ramificaciones mediante la estrategia de combinación de avance rápido, ejecute el comando [**merge-branches-by-fast-forward**](#merge-branches-by-fast-forward).
+ Para combinar dos ramificaciones mediante la estrategia de combinación de squash, ejecute el comando [**merge-branches-by-squash**](#merge-branches-by-squash).
+ Para combinar dos ramificaciones mediante la estrategia de combinación de tres modos, ejecute el comando [**merge-branches-by-three-way**](#merge-branches-by-three-way).

También puede probar las combinaciones ejecutando el comando **create-unreferenced-merge-commit**. Para obtener más información, consulte [Resolver conflictos en una solicitud de extracción](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit).

**nota**  
Para usar AWS CLI comandos con CodeCommit, instale el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

**Para usar el AWS CLI para fusionar dos ramas en un CodeCommit repositorio**

1. <a name="merge-branches-by-fast-forward"></a>Para combinar dos ramificaciones mediante la estrategia de combinación de avance rápido, ejecute el comando **merge-branches-by-fast-forward** especificando: 
   + El nombre de la ramificación de origen que contiene los cambios que desea combinar (con la opción **--source-commit-specifier**). 
   + El nombre de la ramificación de destino donde desea combinar los cambios (con la opción **--destination-commit-specifier**). 
   + El nombre del repositorio (con la opción **--repository-name**).

    Por ejemplo, para fusionar una rama de origen denominada *bugfix-1234* con una rama de destino denominada *preprod* en un repositorio denominado*MyDemoRepo*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

1. <a name="merge-branches-by-squash"></a>Para combinar dos ramificaciones mediante la estrategia de combinación de squash, ejecute el comando **merge-branches-by-squash**, especificando:
   + El nombre de la ramificación de origen que contiene los cambios que desea combinar (con la opción **--source-commit-specifier**). 
   + El nombre de la ramificación de destino donde desea combinar los cambios (con la opción **--destination-commit-specifier**). 
   + El nombre del repositorio (con la opción **--repository-name**).
   + El mensaje de confirmación que incluir (con la opción **--commit-message**).
   + El nombre que se utilizará para la confirmación (con la opción **--name**).
   + La dirección de correo electrónico que se va a utilizar para la confirmación (con la opción **--email**).

   Por ejemplo, para fusionar una rama de origen denominada *bugfix-bug1234* con una rama de destino denominada *bugfix-quarterly* en un repositorio denominado*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
   ```

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

1. <a name="merge-branches-by-three-way"></a>Para combinar dos ramificaciones mediante la estrategia de combinación de tres modos, ejecute el comando **merge-branches-by-three-way**, especificando:
   + El nombre de la ramificación de origen que contiene los cambios que desea combinar (con la opción **--source-commit-specifier**). 
   + El nombre de la ramificación de destino donde desea combinar los cambios (con la opción **--destination-commit-specifier**). 
   + El nombre del repositorio (con la opción **--repository-name**).
   + El mensaje de confirmación que incluir (con la opción **--commit-message**).
   + El nombre que se utilizará para la confirmación (con la opción **--name**).
   + La dirección de correo electrónico que se va a utilizar para la confirmación (con la opción **--email**).

   Por ejemplo, para fusionar una rama de origen denominada *main* con una rama de destino denominada *bugfix-1234* en un repositorio denominado*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
   ```

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

# Cambie la configuración de la sucursal en AWS CodeCommit
<a name="how-to-change-branch"></a>

Puede cambiar la rama que desea utilizar como rama predeterminada en la AWS CodeCommit consola o con la AWS CLI. Por ejemplo, si creó su primera confirmación con un cliente Git que estableció la ramificación predeterminada como *maestro*, podría crear una ramificación llamada *principal* y, a continuación, cambiar la configuración para que la nueva ramificación se establezca como la predeterminada del repositorio. Para cambiar la configuración de otras ramas, puedes usar Git desde un repositorio local conectado al CodeCommit repositorio. 

**Topics**
+ [Cambiar la ramificación predeterminada (consola)](#how-to-change-branch-console)
+ [Cambiar la ramificación predeterminada (AWS CLI)](#how-to-change-branch-cli)

## Cambiar la ramificación predeterminada (consola)
<a name="how-to-change-branch-console"></a>

Puedes especificar qué rama es la rama predeterminada de un CodeCommit repositorio en la AWS CodeCommit consola. 

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio cuya configuración desea cambiar. 

1. En el panel de navegación, seleccione **Configuración**.

1. En la lista desplegable **Default branch (Ramificación predeterminada)**, elija la lista desplegable de ramificación y elija una ramificación diferente. Seleccione **Save**.
**sugerencia**  
Si no ve otra ramificación en la lista desplegable, significa que no ha creado ninguna ramificación adicional. No puede cambiar la ramificación predeterminada de un repositorio si el repositorio solo tiene una ramificación. Para obtener más información, consulte [Crea una rama en AWS CodeCommit](how-to-create-branch.md).
Si no ve la sección **Ramificación predeterminada**, sino elementos relacionados con las reglas de notificación y las conexiones, se encuentra en el menú de configuración general de la consola. El menú de configuración de los repositorios aparece en **Repositorios**, al mismo nivel que **Código** y **Solicitudes de extracción**.

## Cambiar la ramificación predeterminada (AWS CLI)
<a name="how-to-change-branch-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el. AWS CLI Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Para usar el AWS CLI para cambiar la configuración de la rama de un repositorio en un CodeCommit repositorio, ejecuta el siguiente comando:
+ [update-default-branch](#how-to-change-branch-cli-default) para cambiar la ramificación predeterminada.

### Cambiar la ramificación predeterminada
<a name="how-to-change-branch-cli-default"></a>

1. Ejecute el comando **update-default-branch**, especificando:
   + El nombre del CodeCommit repositorio en el que se actualiza la rama predeterminada (con la **--repository-name** opción).
**sugerencia**  
Para obtener el nombre del CodeCommit repositorio, ejecute el comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + El nombre de la nueva ramificación predeterminada (con la opción **--default-branch-name**).
**sugerencia**  
Para obtener el nombre de la ramificación, ejecute el comando [list-branches](how-to-view-branch-details.md#how-to-view-branch-details-cli).

1. Por ejemplo, para cambiar la rama predeterminada a la de un `MyNewBranch` CodeCommit repositorio llamado: `MyDemoRepo`

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

   Este comando devuelve resultados solo si hay errores.

Para ver más opciones, consulte la documentación de Git.

# Eliminar una rama en AWS CodeCommit
<a name="how-to-delete-branch"></a>

Puedes usar la CodeCommit consola para eliminar una rama de un repositorio. Al eliminar una rama de un repositorio local, CodeCommit no se elimina esa rama de un repositorio local, por lo que es posible que los usuarios sigan teniendo copias de esa rama hasta la próxima vez que introduzcan cambios. Para eliminar una rama localmente y enviar ese cambio al CodeCommit repositorio, usa Git desde un repositorio local conectado al CodeCommit repositorio. 

Al eliminar una ramificación, no se elimina ninguna confirmación, pero sí todas las referencias a las confirmaciones en esa ramificación. Si eliminas una rama que contiene confirmaciones que no se han fusionado en otra rama del repositorio, no podrás recuperar esas confirmaciones a menos que tengas su confirmación IDs completa. 

**nota**  
No puede usar las instrucciones de este tema para eliminar la ramificación predeterminada de un repositorio. Si desea eliminar la ramificación predeterminada, deberá crear una ramificación, establecer esta como predeterminada y, a continuación, eliminar la antigua. Para obtener más información, consulte [Creación de una ramificación](how-to-create-branch.md) y [Cambiar la configuración de una ramificación](how-to-change-branch.md).

**Topics**
+ [Eliminación de una ramificación (consola)](#how-to-delete-branch-console)
+ [Eliminación de una ramificación (AWS CLI)](#how-to-delete-branch-cli)
+ [Eliminación de una ramificación (Git)](#how-to-delete-branch-git)

## Eliminación de una ramificación (consola)
<a name="how-to-delete-branch-console"></a>

Puedes usar la CodeCommit consola para eliminar una rama de un CodeCommit repositorio. 

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio en el que desea eliminar la ramificación. 

1. En el panel de navegación, seleccione **Branches**.

1. Encuentre el nombre de la ramificación que desee eliminar, seleccione **Delete branch (Eliminar ramificación)** y confirme su elección.

## Eliminación de una ramificación (AWS CLI)
<a name="how-to-delete-branch-cli"></a>

Puedes usar la AWS CLI para eliminar una rama de un CodeCommit repositorio, si esa rama no es la rama predeterminada del repositorio. Para obtener más información sobre la instalación y el uso de AWS CLI, consulte[Referencia de la línea de comandos](cmd-ref.md). 

1. En el terminal o en la línea de comandos, ejecute el comando **delete-branch** especificando lo siguiente:
   + El nombre del CodeCommit repositorio en el que se va a eliminar la rama (con la **--repository-name** opción).
**sugerencia**  
Para obtener el nombre del CodeCommit repositorio, ejecute el comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + El nombre de la nueva ramificación que se va a eliminar (con la opción **branch-name**).
**sugerencia**  
Para obtener el nombre de la ramificación, ejecute el comando [list-branches](how-to-view-branch-details.md#how-to-view-branch-details-cli).

1. Por ejemplo, para eliminar una rama denominada `MyNewBranch` en un CodeCommit repositorio con el nombre: `MyDemoRepo`

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

   Este comando devuelve información acerca de la ramificación eliminada, incluido el nombre de la ramificación eliminada y el ID de confirmación completo que era el encabezado de la ramificación. Por ejemplo:

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

## Eliminación de una ramificación (Git)
<a name="how-to-delete-branch-git"></a>

Sigue estos pasos para usar Git desde un repositorio local para eliminar una rama de un CodeCommit repositorio.

Estos pasos se escriben partiendo del supuesto de que ya has conectado el repositorio local al CodeCommit repositorio. Para obtener instrucciones, consulte [Conectarse a un repositorio](how-to-connect.md).

1. Para eliminar la rama del repositorio local, ejecuta el **git branch -D *branch-name*** comando donde *branch-name* aparece el nombre de la rama que deseas eliminar.
**sugerencia**  
Para obtener una lista de los nombres de las ramificaciones, ejecute **git branch --all**.

   Por ejemplo, para eliminar una ramificación del repositorio local denominado `MyNewBranch`:

   ```
   git branch -D MyNewBranch
   ```

1. Para eliminar la rama del CodeCommit repositorio, ejecuta el **git push *remote-name* --delete *branch-name*** comando donde *remote-name* es el apodo que el repositorio local usa para el CodeCommit repositorio y *branch-name* es el nombre de la rama que deseas eliminar del CodeCommit repositorio. 
**sugerencia**  
Para obtener una lista de los nombres de los CodeCommit repositorios y sus nombres URLs, ejecuta el **git remote -v** comando.

   Por ejemplo, para eliminar una rama llamada `MyNewBranch` en el CodeCommit repositorio llamada`origin`:

   ```
   git push origin --delete MyNewBranch
   ```
**sugerencia**  
Este comando no elimina la ramificación si se trata de la ramificación predeterminada.

Para ver más opciones, consulte la documentación de Git.