Forking crée un référentiel entièrement nouveau à partir du référentiel existant (simplement en faisant git clone sur gitHub / bitbucket)
Les fourches sont mieux utilisées: lorsque l'intention de la `` scission '' est de créer un projet logiquement indépendant, qui peut ne jamais se réunir avec son parent.
La stratégie de branche crée une nouvelle branche sur le référentiel existant / fonctionnel
Les branches sont mieux utilisées: lorsqu'elles sont créées en tant qu'espaces temporaires pour travailler sur une fonction, avec l'intention de fusionner la branche avec l'origine.
Plus spécifique: -
Dans les projets open source, c'est le propriétaire du référentiel qui décide qui peut pousser vers le référentiel. Cependant, l'idée de l'open source est que tout le monde peut contribuer au projet.
Ce problème est résolu par les fourches: chaque fois qu'un développeur veut changer quelque chose dans un projet open source, il ne clone pas directement le référentiel officiel. Au lieu de cela, ils le fourchent pour créer une copie. Une fois le travail terminé, ils font une demande d'extraction afin que le propriétaire du référentiel puisse examiner les modifications et décider de les fusionner avec son projet.
À la base, la fourche est similaire à la fonction de branchement, mais au lieu de créer des branches, une fourchette du référentiel est créée, et au lieu de faire une demande de fusion, vous créez une demande d'extraction.
Les liens ci-dessous fournissent la différence d'une manière bien expliquée:
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