Implementar el flujo de trabajo de bifurcación
Una bifurcación es una copia de un repositorio. La bifurcación de un repositorio permite experimentar libremente con cambios sin afectar el proyecto original.
Con más frecuencia, se utilizan las bifurcaciones para proponer cambios en proyectos ajenos. O bien, use el proyecto de otra persona como punto de partida para su idea.
Una bifurcación es una copia completa de un repositorio, incluidos todos los archivos, confirmaciones y (opcionalmente) 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 tenga permiso para escribir en el proyecto original directamente.
Una vez que esté listo para compartir esos cambios, es fácil contribuir con ellos mediante pull requests.
¿Qué hay en un tenedor?
Una bifurcación comienza con todo el contenido del repositorio de origen.
Puede incluir todas las ramas o limitarlas solo a la rama predeterminada al crear una bifurcación.
No se aplica ninguno de los permisos, directivas o canalizaciones de compilación.
La nueva bifurcación actúa como si alguien clonara el repositorio original y luego lo empujara a un nuevo repositorio vacío.
Después de crear una bifurcación, los archivos, las carpetas y las ramas nuevas no se comparten entre los repositorios a menos que un Pull Request (PR) los incluya.
Uso compartido de código entre bifurcaciones
Puede crear PRs en cualquier dirección: del fork al upstream o del upstream al fork.
El enfoque más común será de bifurcación a ascendente.
Los permisos, directivas, compilaciones y elementos de trabajo del repositorio de destino se aplicarán a la solicitud de incorporación de cambios.
Elección entre ramas y bifurcaciones
Para un equipo pequeño (2-5 desarrolladores), se recomienda trabajar en un único repositorio.
Todos deben trabajar en una rama temática, y la rama principal debe protegerse con políticas de ramas.
A medida que el equipo crece y se hace más grande, es posible que descubra que esta organización se vuelve insuficiente 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 directas en el repositorio.
Sería útil que pidiera a colaboradores ajenos a este núcleo de personas que trabajen con una bifurcación del repositorio.
Además, aislará sus cambios de los tuyos hasta que hayas tenido la oportunidad de examinar el trabajo.
Proceso de bifurcación del flujo de trabajo
- Cree una bifurcación.
- Clónalo localmente.
- Realice los cambios localmente y envíelos a una rama.
- Cree y complete una solicitud de incorporación de cambios en la cadena ascendente.
- Sincronizar tu fork con la última versión del repositorio principal.
Crear el fork
- Navegue al repositorio para crear una bifurcación y seleccione la opción de bifurcar.
- Especifique un nombre y elija el proyecto donde desea que se cree la bifurcación. Si el repositorio contiene muchas ramas de temas, se recomienda bifurcar solo la rama predeterminada.
- Elija los puntos suspensivos y, a continuación, bifurque para crear la bifurcación.
Nota
Debe tener el permiso para Crear repositorio en el proyecto elegido para crear un fork. Recomendamos crear un proyecto específico para bifurcaciones donde todos los colaboradores tengan el permiso de crear repositorio. Para obtener un ejemplo de concesión de este permiso, consulte Establecimiento de permisos de repositorio de Git.
Clona tu fork localmente
Una vez que la bifurcación esté lista, clónala mediante la línea de comandos o un IDE como Visual Studio. El fork será tu origen remoto.
Para mayor comodidad, después de clonar, querrá agregar el repositorio upstream (desde el que se bifurcó) como un remoto llamado upstream.
git remote add upstream {upstream_url}
Realizar e insertar cambios
Es posible trabajar directamente en main: después de todo, esta bifurcación es tu copia del repositorio.
Sin embargo, se recomienda seguir trabajando en una rama de tema.
Permite mantener varias secuencias de trabajo independientes simultáneamente.
Además, reduce la confusión más adelante cuando quieres sincronizar los cambios en tu repositorio.
Realice y confirme los cambios como lo haría normalmente. Cuando haya terminado con los cambios, insértelos en origen (la bifurcación).
Crear y completar una solicitud de incorporación de cambios
Abra un pull request desde su bifurcación hacia el upstream. Todas las políticas necesarias para los revisores y compilaciones se aplicarán en el repositorio ascendente. Una vez que se cumplen todas las políticas, la solicitud de incorporación de cambios se puede completar y los cambios se convierten en una parte permanente del repositorio principal.
Importante
Cualquier persona con el permiso de lectura puede abrir una solicitud de incorporación de cambios en upstream. Si se configura una canalización de compilación de PR, la compilación se ejecutará contra el código introducido en la bifurcación.
Sincroniza tu bifurcación con la versión más reciente
Cuando se haya aceptado su solicitud de incorporación de cambios en el upstream, querrás asegurarte de que tu bifurcación refleje el estado más reciente del repositorio.
Se recomienda hacer un rebase en la rama principal de upstream (suponiendo que main es la rama de desarrollo principal).
git fetch upstream main
git rebase upstream/main
git push origin
El flujo de trabajo de 'fork' le permite aislar los cambios del repositorio principal hasta que esté listo para integrarlos. Cuando estés listo, integrar el código es tan fácil como realizar un pull request.