Skip to main content

Escribir código para un proyecto

Use ramas, bifurcaciones, confirmaciones y solicitudes de incorporación de cambios para escribir, refinar y proponer cambios de código de forma segura para proyectos colaborativos.

Al contribuir a un proyecto, necesita un lugar seguro para escribir y refinar código antes de que afecte a la base de código principal. Las ramas, bifurcaciones, confirmaciones y solicitudes de incorporación de cambios funcionan conjuntamente para proporcionarle ese espacio, de modo que pueda experimentar, proteger el trabajo de forma incremental y proponer cambios finalizados para su revisión.

Aislar el trabajo con bifurcaciones y bifurcaciones

La mayoría del trabajo comienza creando una copia aislada del código que puede cambiar libremente.

  • Use una rama cuando tenga acceso de escritura a un repositorio. Una rama le permite desarrollar una característica, corregir un error o experimentar en un área independiente del repositorio sin afectar a otras ramas. Se crea una rama a partir de una rama existente, normalmente la rama predeterminada.
  • Use una bifurcación cuando no tenga acceso de escritura o cuando desee una independencia total del proyecto original. Una bifurcación es un repositorio independiente que comparte la configuración de código y visibilidad con el repositorio original "ascendente". Tiene sus propias ramas, problemas y solicitudes de incorporación de cambios. Con una bifurcación, también puede abrir solicitudes de incorporación de cambios para el repositorio ascendente.

Normalmente, una rama es la opción más sencilla cuando ya colabora en un repositorio compartido. Una bifurcación suele ser la mejor opción para las contribuciones de código abierto, donde es posible que no tenga acceso de escritura al repositorio ascendente.

Comprobación del trabajo con confirmaciones

A medida que escribe código, se guardan grupos pequeños y significativos de cambios como confirmaciones. Cada confirmación registra una instantánea del trabajo junto con un mensaje que describe lo que ha cambiado, lo que facilita el seguimiento del historial, revisar los cambios y comprender cómo evolucionó el código.

Confirmar con frecuencia en la rama o bifurcación le permite:

  • Divida un cambio mayor en pasos revisables.
  • Revierta a un estado anterior si un experimento no funciona.
  • Proporcione a los revisores un historial claro de cómo llegó al cambio final.

Proponer cambios con solicitudes de incorporación de cambios

Cuando el trabajo esté listo para compartir, abra una solicitud de incorporación de cambios para proponer la combinación de los cambios en la rama base. Una solicitud de incorporación de cambios reúne las confirmaciones, una descripción del cambio y las herramientas que los revisores necesitan analizar y evaluar antes de combinarlas.

Puede abrir una solicitud de incorporación de cambios mientras el trabajo todavía está en curso mediante la creación de una solicitud de incorporación de cambios de borrador, que comparte los cambios sin solicitar formalmente la revisión. Esto resulta útil cuando desea recibir comentarios anticipados o desea ejecutar comprobaciones automatizadas en el código.

Mantener el código actualizado y optimizado

Mientras se abre una solicitud de incorporación de cambios, la rama base puede seguir cambiando a medida que otras personas combinan su trabajo. Para mantener los cambios limpios y reducir los conflictos, puede hacer lo siguiente:

  • Combine o vuelva a basar la rama base en la rama con frecuencia para que la diferencia permanezca centrada en lo que introduce el cambio. GitHub muestra una diferencia de tres puntos de forma predeterminada, que compara la rama con el punto en el que se difundió de la base.
  • Vuelva a crear una base para ordenar un historial de confirmaciones desordenadas (reordenar, combinar o volver a escribir confirmaciones) antes de solicitar revisión.
  • Resuelva conflictos de combinación cuando Git no pueda combinar automáticamente los cambios de la competencia.

Trabajar dentro de los controles de repositorio

Los colaboradores experimentados funcionan dentro de los límites de protección que define un repositorio. Estos controles dan forma a dónde puede insertar, quién debe aprobar el trabajo y qué debe pasar antes de que se combine.

  • Las ramas protegidas y los conjuntos de reglas pueden bloquear inserciones directas en ramas importantes, requerir confirmaciones de historial lineal o firmadas y requerir comprobaciones de estado o revisiones antes de la combinación.
  • Los propietarios de código se solicitan automáticamente para su revisión cuando el cambio toca los archivos que poseen, por lo que planea su aprobación en áreas confidenciales.
  • Los conjuntos de reglas de inserción se pueden aplicar a través de una red de bifurcación, restringiendo rutas de acceso de archivo, tamaños o nombres en cada bifurcación.
  • Los enlaces de recepción previa permiten a los administradores GitHub Enterprise Server aplicar comprobaciones de directivas en el servidor antes de que se acepten confirmaciones.

Una cadena de herramientas integrada

Las solicitudes de incorporación de cambios conectan el código a la automatización y los servicios que le ayudan a escribir código de forma rápida y segura.

  • Code scanning y Dependabot exponen problemas de seguridad y dependencias vulnerables a medida que los cambios se mueven a través de una solicitud de incorporación de cambios, por lo que puede aplicar prácticas de codificación seguras al principio.
  • GitHub Actions puede ejecutar la integración continua en cada inserción en la solicitud de incorporación de cambios, compilar y probar los cambios automáticamente.

Lectura adicional