Implementación del flujo de trabajo de bifurcación
Una bifurcación es una copia de un repositorio. La bifurcación de un repositorio permite experimentar con cambios libremente sin que estos afecten al proyecto original.
Normalmente, las bifurcaciones se usan para proponer cambios en el proyecto de otra persona. O bien, para usar el proyecto de otra persona como punto de partida para una idea.
Una bifurcación es una copia completa de un repositorio, incluidos todos los archivos, las confirmaciones y, opcionalmente, las ramas.
Las bifurcaciones son una excelente manera de admitir un flujo de trabajo de origen interno: puede crear una bifurcación para sugerir cambios cuando no tiene permiso para escribir directamente en el proyecto original.
Una vez que ya lo tengas todo listo para compartir esos cambios, será fácil aportarlos mediante solicitudes de incorporación de cambios.
¿Qué hay en una bifurcación?
Una bifurcación comienza con todo el contenido de su repositorio ascendente (original).
Puede incluir todas las ramas o usar solo la rama predeterminada al crear una bifurcación.
No se aplica ninguno de los permisos, directivas ni canalizaciones de compilación.
La nueva bifurcación actúa como si alguien clonase el repositorio original y, a continuación, lo insertara en un nuevo repositorio vacío.
Una vez creada una bifurcación, los nuevos archivos, carpetas y ramas no se comparten entre los repositorios a menos que una solicitud de incorporación de cambios (PR) los incorpore.
Uso compartido de código entre bifurcaciones
Puede crear PR en cualquier dirección: de la bifurcación al repositorio ascendente o del repositorio ascendente a la bifurcación.
El enfoque más común será de la bifurcación al repositorio ascendente.
Los permisos, las directivas, las compilaciones y los elementos de trabajo del repositorio de destino se aplicarán a la PR.
Elección entre ramas y bifurcaciones
Para un equipo pequeño (de entre 2 y 5 desarrolladores), se recomienda trabajar en un único repositorio.
Todos los usuarios deben trabajar en una rama puntual y la rama principal debe protegerse con directivas de rama.
A medida que su equipo se vuelva más significativo, es posible que deje atrás este ajuste y prefiera cambiar a un flujo de trabajo de bifurcación.
Se recomienda el flujo de trabajo de bifurcación si el repositorio tiene muchos comités ocasionales o poco frecuentes (como un proyecto de código abierto).
Normalmente, solo los colaboradores principales del proyecto tienen derechos de confirmación directa en el repositorio.
Le resultará útil pedir a los colaboradores que no pertenezcan a este grupo básico de personas que trabajen desde una bifurcación del repositorio.
Además, esto aislará los cambios de estas personas de los suyos hasta que haya tenido la oportunidad de examinar el trabajo.
Flujo de trabajo de bifurcación
- Cree una bifurcación.
- Clónela localmente.
- Realice los cambios localmente e insértelos en una rama.
- Cree y complete una PR para el repositorio ascendente.
- Sincronice la bifurcación con la versión más reciente desde el repositorio ascendente.
Creación de la bifurcación
- Vaya al repositorio que quiera bifurcar y elija Bifurcación.
- Especifique un nombre y elija el proyecto donde quiera que se cree la bifurcación. Si el repositorio contiene muchas ramas puntuales, se recomienda bifurcar solo la rama predeterminada.
- Elija los puntos suspensivos y, a continuación, Bifurcar para crear la bifurcación.
Nota:
Debe tener el permiso Crear repositorio en el proyecto elegido para crear una bifurcación. Se recomienda crear un proyecto dedicado para las bifurcaciones en las que todos los colaboradores tengan el permiso Crear repositorio. Para ver un ejemplo de la concesión de este permiso, consulte Set Git repository permissions (Establecimiento de los permisos de un repositorio de Git).
Clonación de la bifurcación localmente
Una vez que la bifurcación esté lista, clónela mediante la línea de comandos o un IDE, como Visual Studio. La bifurcación será su origen remoto.
Para mayor comodidad, después de la clonación, querrá agregar el repositorio ascendente (desde donde habrá realizado la bifurcación) como repositorio ascendente con nombre remoto.
git remote add upstream {upstream_url}
Realización e inserción de cambios
Es posible trabajar directamente en la rama principal; después de todo, esta bifurcación es la copia del repositorio.
Sin embargo, se recomienda seguir trabajando en una rama puntual.
Permite mantener varias series de tareas independientes de forma simultánea.
Además, reducirá las confusiones más adelante cuando quiera sincronizar los cambios en la bifurcación.
Realice y confirme los cambios como lo haría normalmente. Cuando haya terminado con los cambios, insértelos en el origen (la bifurcación).
Creación y ejecución de una PR
Abra una solicitud de incorporación de cambios de la bifurcación al repositorio ascendente. Todas las compilaciones y revisores necesarios de las directivas se aplicarán en el repositorio ascendente. Una vez que se cumplan todas las directivas, se podrá completar la PR y los cambios se convertirán en una parte permanente del repositorio ascendente.
Importante
Cualquier persona con permiso de lectura puede abrir una PR para el repositorio ascendente. Si se configura una canalización de compilación de PR, la compilación se ejecutará en el código introducido en la bifurcación.
Sincronización de la bifurcación con la versión más reciente
Cuando haya aceptado la solicitud de incorporación de cambios en el repositorio ascendente, querrá asegurarse de que la bifurcación refleje el estado más reciente del repositorio.
Recomendamos volverse a basar en la rama principal del repositorio ascendente (contando que la rama principal es la rama de desarrollo principal).
git fetch upstream main
git rebase upstream/main
git push origin
El flujo de trabajo de bifurcación le permite aislar los cambios del repositorio principal hasta que lo tenga todo listo para integrarlos. Cuando lo tenga todo listo, la integración de código será tan fácil como completar una solicitud de incorporación de cambios.