

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

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.

# Cómo organizar tu trabajo con el código fuente con las sucursales de Amazon CodeCatalyst
<a name="source-branches"></a>

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 y mucho más. Puede configurar reglas para las ramificaciones en los repositorios de código fuente con el fin de limitar determinadas acciones en una ramificación a roles específicos de ese proyecto.

Los repositorios de fuentes de Amazon CodeCatalyst tienen contenido y una rama predeterminada, independientemente de cómo los crees. Es posible que los repositorios enlazados no tengan una rama o contenido predeterminados, pero no se podrán utilizar CodeCatalyst hasta que los inicialices y crees una rama predeterminada. Al crear un proyecto mediante un plano, CodeCatalyst crea un repositorio de código fuente para ese proyecto que incluye un archivo README.md, un código de muestra, definiciones de flujos de trabajo y otros recursos. Al crear un repositorio de código fuente sin utilizar un esquema, se añade un archivo README.md como primera confirmación y se crea una *ramificación predeterminada*. Esta ramificación predeterminada se denomina *main*. 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.

**nota**  
No se puede eliminar la ramificación predeterminada. La primera ramificación que se crea para un repositorio de código fuente es la ramificación predeterminada de ese repositorio. Además, la búsqueda solo muestra los resultados de la ramificación predeterminada. No se puede buscar código en otras ramificaciones.

Al crear un repositorio, CodeCatalyst también se crea una primera confirmación, que crea una *rama predeterminada* con un archivo README.md incluido. El nombre de esa ramificación predeterminada es *main*. Este es el nombre de la ramificación predeterminada en todos los ejemplos de esta guía. 

**Topics**
+ [Creación de una ramificación](source-create-delete-branch.md)
+ [Administración de la ramificación predeterminada de un repositorio](source-branches-default-branch.md)
+ [Administración de las acciones permitidas para una ramificación con reglas de ramificación](source-branches-branch-rules.md)
+ [Comandos de Git para ramificaciones](source-branches-git.md)
+ [Visualización de ramificaciones y detalles](source-branches-view.md)
+ [Eliminación de una ramificación](source-branches-delete.md)

# Creación de una ramificación
<a name="source-create-delete-branch"></a>

Puedes usar la CodeCatalyst consola para crear ramas en un CodeCatalyst repositorio. Las ramificaciones que cree serán visibles para otros usuarios la próxima vez que extraigan cambios del repositorio. 

**sugerencia**  
También puede crear ramificaciones como parte de la creación de un entorno de desarrollo para trabajar en el código. Para obtener más información, consulte [Creación de un entorno de desarrollo](devenvironment-create.md).

También puede usar Git para crear ramificaciones. Para obtener más información, consulte [Comandos comunes de Git para ramificaciones](source-branches-git.md#source-branches-git-table).

**Creación de una ramificación (consola)**

1. En la CodeCatalyst consola, navega hasta el proyecto en el que reside tu repositorio de origen.

1. Seleccione el nombre del repositorio de la lista de repositorios de código fuente para el proyecto. Como alternativa, en el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

1. Elija el repositorio donde desee crear una ramificación.

1. En la página de información general del repositorio, elija **Más** y **Crear ramificación**.

1. Introduzca un nombre para la ramificación.

1. Elija una ramificación desde la que creara la ramificación y, a continuación, seleccione **Crear**. 

# Administración de la ramificación predeterminada de un repositorio
<a name="source-branches-default-branch"></a>

Puedes especificar qué rama usar como *rama predeterminada* en un repositorio de origen en Amazon CodeCatalyst. Todos los repositorios de origen CodeCatalyst tienen contenido y una rama predeterminada, independientemente de cómo los crees. Si utiliza un esquema para crear un proyecto, la ramificación predeterminada del repositorio de código fuente creado para ese proyecto se denomina *main*. El contenido de la ramificación predeterminada se muestra automáticamente en la página de información general de ese repositorio.

**importante**  
CodeCatalyst no admite la detección de cambios en la rama predeterminada de los repositorios enlazados. Para cambiar la rama predeterminada de un repositorio vinculado, primero debes desvincularlo CodeCatalyst, cambiar la rama predeterminada y, a continuación, volver a vincularlo. Para obtener más información, consulte [Vincular GitHub repositorios, repositorios de Bitbucket, repositorios de GitLab proyectos y proyectos de Jira en CodeCatalyst](extensions-link.md).  
Como práctica recomendada, asegúrese siempre de tener la última versión de la extensión antes de vincular un repositorio.

La ramificación predeterminada se trata de forma un poco diferente a todas las demás ramificaciones de un repositorio de código fuente. Tiene una etiqueta especial junto al nombre, **Predeterminada**. La 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 a sus equipos locales con un cliente de Git. También es la que se usa de forma predeterminada al crear flujos de trabajo para almacenar archivos YAML de flujos de trabajo y para almacenar información relacionada con problemas. Al utilizar la búsqueda en CodeCatalyst, solo se busca en la rama predeterminada de un repositorio. Como la ramificación predeterminada es fundamental para muchos aspectos de los proyectos, no se puede eliminar una ramificación si está especificada como la predeterminada. Sin embargo, puede optar por utilizar una ramificación diferente como predeterminada. En tal caso, cualquier [regla de ramificación](source-branches-branch-rules.md) que se aplique a la ramificación predeterminada anterior se aplicará automáticamente a cualquiera que especifique como ramificación predeterminada.

**nota**  
Debe tener el rol de administrador de proyectos para cambiar la rama predeterminada de los repositorios de origen en los CodeCatalyst proyectos. Esto no se aplica a los repositorios vinculados.

**Visualización y cambio de la ramificación predeterminada de un repositorio**

1. Desplácese hasta el proyecto en el que esté su repositorio.

1. Seleccione el nombre del repositorio de la lista de repositorios de código fuente para el proyecto. Como alternativa, en el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

   Elija el repositorio cuyas configuraciones quiera ver, incluida la ramificación predeterminada.

1. En la página de información general del repositorio, elija **Más** y **Administrar la configuración**.

1. En **Ramificación predeterminada** se muestra el nombre de la ramificación especificada como predeterminada junto con una etiqueta llamada **Predeterminada** que aparece al lado del nombre. Esta misma etiqueta aparece junto al nombre de la ramificación en la lista de **Ramificaciones**.

1. Para cambiar la ramificación predeterminada, seleccione **Editar**.
**nota**  
Debe tener el rol de Administrador de proyecto en el proyecto para cambiar la ramificación predeterminada.

1. Seleccione el nombre de la ramificación que quiera convertir en predeterminada en la lista desplegable y seleccione **Guardar**.

# Administración de las acciones permitidas para una ramificación con reglas de ramificación
<a name="source-branches-branch-rules"></a>

Al crear una ramificación, se permiten ciertas acciones para esa ramificación en función de los permisos de ese rol. Puede cambiar las acciones que se permiten en una ramificación específica configurando las reglas de la ramificación. Las reglas de ramificación se basan en el rol que desempeñe un usuario en el proyecto. Puede decidir limitar algunas acciones predefinidas, como el envío de confirmaciones a una ramificación, a aquellos usuarios que tengan un rol concreto en un proyecto. Esto puede ayudarle a proteger ramificaciones específicas de un proyecto mediante la limitación de los roles que pueden realizar determinadas acciones. Por ejemplo, si configura una regla de ramificación para que solo los usuarios con el rol de **Administrador de proyecto** puedan realizar combinaciones o inserciones en esa ramificación, los usuarios que tengan otros roles en el proyecto no podrán realizar cambios en el código de esa ramificación. 

Debe considerar detenidamente todas las implicaciones de crear una regla para una ramificación. Por ejemplo, si decide limitar las inserciones en una ramificación a aquellos usuarios que tengan el rol de **Administrador de proyecto**, los usuarios que tengan el rol **Colaborador** no podrán crear ni editar flujos de trabajo en esa ramificación, ya que el flujo de trabajo de YAML se almacena en esa ramificación y esos usuarios no pueden confirmar ni insertar cambios en el YAML. Una práctica recomendada consiste en probar las reglas de las ramificaciones después de crearlas para asegurarse de que no causen ningún impacto inesperado. También puede usar las reglas de ramificación en conjunto con reglas de aprobación para las solicitudes de extracción. Para obtener más información, consulte [Administración de los requisitos para combinar una solicitud de extracción con reglas de aprobación](source-pull-requests-approval-rules.md).

**nota**  
Debe tener el rol de administrador de proyectos para administrar las reglas de ramificación de los repositorios de origen en los CodeCatalyst proyectos. No puede crear reglas de ramificación para los repositorios vinculados.  
Solo puede crear reglas de ramificación que sean más restrictivas que los permisos predeterminados para el rol. No puede crear reglas de ramificación que sean más permisivas de lo que permita el rol de un usuario en el proyecto. Por ejemplo, no puede crear una regla de ramificación que permita a los usuarios con el rol de Revisor acceder a la ramificación.

Las reglas de ramificación que se apliquen a la ramificación predeterminada del repositorio de código fuente se comportarán de forma un poco diferente a aquellas reglas de ramificación que se apliquen a otras ramificaciones. Cualquier regla que se aplique a la ramificación predeterminada se aplicará automáticamente a cualquier ramificación que especifique como ramificación predeterminada. La ramificación que se hubiese establecido anteriormente como la ramificación predeterminada conservará las reglas que se le apliquen, excepto que ya no estará protegida contra la eliminación. Esa protección solo se aplica a la ramificación predeterminada actual.

Las reglas de ramificación tienen dos estados: **Estándar** y **Personalizado**. El **estándar** indica que las acciones permitidas en una rama son las que coinciden con los permisos del rol que el usuario desempeña en las acciones CodeCatalyst de la rama. Para obtener más información sobre qué permisos tiene cada rol, consulte [Concesión de acceso en los roles de usuario](ipa-roles.md). El estado **Personalizado** indica que una o más acciones de ramificación tienen acciones con una lista específica de roles permitidos para realizar esa acción y que difieren de los permisos predeterminados que otorga el rol de un usuario en el proyecto. 

**nota**  
Si crea una regla de ramificación para restringir una o varias acciones en una ramificación, la acción **Eliminar la ramificación** se configura automáticamente para permitir que solo los usuarios que tengan el rol de administrador del proyecto puedan eliminar esa ramificación.

En la siguiente tabla se enumeran las acciones y la configuración predeterminada de los roles que pueden realizar estas acciones en una ramificación.


**Acciones y roles de ramificación**  

| **Acción de ramificación** |  Roles que pueden llevar a cabo esta acción cuando no se haya aplicado ninguna regla de ramificación  | 
| --- | --- | 
|  Combinación con la ramificación (esto incluye combinar una solicitud de extracción con la ramificación)  |  Administrador de proyecto, Colaborador  | 
|  Inserción en la ramificación  |  Administrador de proyecto, Colaborador  | 
|  Eliminación de la ramificación  |  Administrador de proyecto, Colaborador  | 
|  Eliminación de la ramificación (ramificación predeterminada)  |  No permitido  | 

 No puede eliminar las reglas de ramificación, pero puede actualizarlas para que permitan acciones de todos los roles que estarían autorizados a realizar esta acción en una ramificación, lo que elimina la regla en la práctica.

**nota**  
Debe tener el rol de administrador de proyectos para configurar las reglas de ramificación de los repositorios de origen de los CodeCatalyst proyectos. Esto no se aplica a los repositorios vinculados. Los repositorios enlazados no admiten las reglas de ramificación de. CodeCatalyst<a name="view-edit-branch-rules"></a>

**Visualización y edición de reglas de ramificación para un repositorio**

1. Desplácese hasta el proyecto en el que esté su repositorio.

1. Seleccione el nombre del repositorio de la lista de repositorios de código fuente para el proyecto. Como alternativa, en el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

   Elija el repositorio cuyas reglas de ramificación quiera ver.

1. En la página de información general del repositorio, seleccione **Ramificaciones**.

1. En la columna **Reglas de ramificación**, consulte el estado de las reglas de cada ramificación del repositorio. El estado **Estándar** indica que las reglas para las acciones de la ramificación son las predeterminadas para cualquier ramificación creada en un repositorio de código fuente y coinciden con los permisos otorgados a esos roles en un proyecto. El estado **Personalizado** indica que una o más acciones de la ramificación tienen reglas que restringen una o más acciones permitidas para esa ramificación a un conjunto diferente de roles.

   Para ver los detalles de las reglas de una ramificación en particular, seleccione la palabra **Estándar** o **Personalizado** junto a la ramificación que quiera revisar. 

1. Para crear o cambiar una regla de ramificación, seleccione **Administrar la configuración**. En la página de configuración del repositorio de código fuente, en **Reglas de ramificación**, seleccione **Editar**.

1. En **Ramificación**, seleccione en la lista desplegable el nombre de la ramificación para la que quiera configurar una regla. Para cada uno de los tipos de acciones permitidos, seleccione los roles a los que quiera permitir realizar esa acción en la lista desplegable y después seleccione **Guardar**.

# Comandos de Git para ramificaciones
<a name="source-branches-git"></a>

Puedes usar Git para crear, gestionar y eliminar ramas en el clon del repositorio de origen que tengas en tu ordenador (tu repositorio local) o en tus entornos de desarrollo y, a continuación, confirmar y enviar los cambios a tu repositorio de CodeCatalyst origen (el repositorio remoto). Por ejemplo: 


**Comandos comunes de Git para ramificaciones**  

|  |  | 
| --- |--- |
|  Enumera todas las ramificaciones en el repositorio local y muestra un asterisco (`*`) junto a la ramificación actual.  |  `git branch`  | 
|  Extrae información de todas las ramificaciones del repositorio remoto al repositorio local.  |  `git fetch`  | 
|  Enumera todas las ramificaciones del repositorio local y todas las ramificaciones de seguimiento remotas del repositorio local.  |  `git branch -a`  | 
|  Enumera solo las ramificaciones de seguimiento remotas del repositorio local.  |  `git branch -r`  | 
|  Crea una ramificación en el repositorio local con el nombre de la ramificación especificada. Esta ramificación no aparecerá en el repositorio remoto hasta que confirme e inserte el cambio.  |  `git branch branch-name`  | 
|  Crea una ramificación en el repositorio local con el nombre de la ramificación especificada y, a continuación, cambia a ella.  |  `git checkout -b branch-name`  | 
|  Cambia a otra ramificación del repositorio local con el nombre de la ramificación especificada.  |  `git checkout other-branch-name`  | 
|  Inserta una ramificación desde el repositorio local al repositorio remoto utilizando el alias especificado que el repositorio local tenga para el repositorio remoto y el nombre de la ramificación especificada. También configura la información de seguimiento ascendente de la ramificación en el repositorio local.  |  `git push -u remote-name branch-name`  | 
|  Combina los cambios de otra ramificación del repositorio local en la ramificación actual del repositorio local.   |  `git merge from-other-branch-name`  | 
|  Elimina una ramificación del repositorio local a menos que contenga trabajo que no se ha combinado.   |  `git branch -d branch-name`  | 
|  Elimina una ramificación del repositorio remoto mediante el alias especificado que el repositorio loca utiliza para el repositorio remoto y el nombre de la ramificación especificada. (Observe el uso de los dos puntos (`:`)). También puede especificar `--delete` como parte del comando.  | `git push remote-name :branch-name` `git push remote-name --delete branch-name`  | 

Para obtener más información, consulte la documentación de Git.

# Visualización de ramificaciones y detalles
<a name="source-branches-view"></a>

Puedes ver información sobre las sucursales remotas de Amazon CodeCatalyst, incluidos los detalles de los archivos, las carpetas y las confirmaciones más recientes de una sucursal específica, en la CodeCatalyst consola de Amazon. También puede usar los comandos de Git y su sistema operativo local para ver esta información para las ramificaciones remotas y locales.<a name="source-branches-view-console"></a>

**Visualización de ramificaciones (consola)**

1. En la CodeCatalyst consola, navega hasta el proyecto que contiene el repositorio de origen en el que deseas ver las sucursales. En **Código**, elija **Repositorios de origen** y seleccione el repositorio de código fuente.

1. Seleccione el nombre del repositorio de la lista de repositorios de código fuente para el proyecto. Como alternativa, en el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

   Elija el repositorio en el que quiera ver una ramificación.

1. Aparecerá la ramificación predeterminada del repositorio. Puede ver una lista de los archivos y carpetas de la ramificación, información sobre la confirmación más reciente y el contenido del archivo README.md, si existe en la ramificación. Para ver la información de una ramificación diferente, selecciónela en la lista desplegable de ramificaciones del repositorio.

1. Para ver todas las ramificaciones de un repositorio, seleccione **Ver todo**. La página Ramificaciones muestra información sobre el nombre, la confirmación más reciente y las reglas de cada ramificación.

Para obtener información sobre cómo usar Git y su sistema operativo para ver las ramificaciones y sus detalles, consulte [Common Git commands for branches](source-branches-git.md#source-branches-git-table), la documentación de Git y la documentación del sistema operativo.

# Eliminación de una ramificación
<a name="source-branches-delete"></a>

Si ya no necesita una ramificación, puede eliminarla. Por ejemplo, si ha combinado una ramificación con un cambio de característica en la ramificación predeterminada y esa característica se ha publicado, es posible que desee eliminar la ramificación de la característica original, ya que los cambios ya forman parte de la ramificación predeterminada. Mantener un número reducido de ramificación puede ayudar a los usuarios a encontrar aquella que contenga los cambios en los que quieran trabajar. Al eliminar una ramificación, sus copias permanecen en los clones del repositorio en los equipos locales hasta que los usuarios extraigan esos cambios y los sincronicen.<a name="source-branch-delete"></a>

**Eliminación de una ramificación (consola)**

1. Desplácese hasta el proyecto en el que esté su repositorio.

1. Seleccione el nombre del repositorio de la lista de repositorios de código fuente para el proyecto. Como alternativa, en el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

   Elija el repositorio donde desee eliminar una ramificación.

1. En la página de información general del repositorio, seleccione el selector desplegable situado junto al nombre de la ramificación y seleccione **Ver todo**.

1. Seleccione la ramificación que quiera eliminar y luego haga clic en **Eliminar ramificación**.
**nota**  
No puede eliminar la ramificación predeterminada de un repositorio.

1. Aparece un cuadro de diálogo de confirmación. Muestra el repositorio, el número de solicitudes de extracción abiertas y el número de flujos de trabajo asociados a la ramificación. 

1. Para confirmar la eliminación de la ramificación, escriba **delete** en el cuadro de texto y seleccione **Eliminar**.

También puede usar Git para eliminar ramificaciones. Para obtener más información, consulte [Comandos comunes de Git para ramificaciones](source-branches-git.md#source-branches-git-table).