Forking crea un repositorio completamente nuevo a partir del repositorio existente (simplemente haciendo git clone en gitHub / bitbucket)
Las horquillas se usan mejor: cuando la intención de la 'división' es crear un proyecto lógicamente independiente, que nunca se reunirá con su padre.
La estrategia de sucursal crea una nueva sucursal sobre el repositorio existente / en funcionamiento
Las ramas se utilizan mejor: cuando se crean como lugares temporales para trabajar a través de una característica, con la intención de fusionar la rama con el origen.
Más específico: -
En los proyectos de código abierto, es el propietario del repositorio quien decide quién puede empujar al repositorio. Sin embargo, la idea del código abierto es que todos puedan contribuir al proyecto.
Este problema se resuelve con tenedores: cada vez que un desarrollador quiere cambiar algo en un proyecto de código abierto, no clona directamente el repositorio oficial. En cambio, lo bifurcan para crear una copia. Cuando finaliza el trabajo, realizan una solicitud de extracción para que el propietario del repositorio pueda revisar los cambios y decidir si fusionarlos con su proyecto.
En esencia, la bifurcación es similar a la bifurcación de características, pero en lugar de crear ramas se crea una bifurcación del repositorio, y en lugar de hacer una solicitud de fusión, se crea una solicitud de extracción.
Los siguientes enlaces proporcionan la diferencia de una manera bien explicada:
https://blog.gitprime.com/the-definitive-guide-to-forks-and-branches-in-git/
https://buddy.works/blog/5-types-of-git-workflows
http://www.continuousagile.com/unblock/branching.html