To split
source code into different development directions. Forking leads to the development of different versions of a program. Forking often occurs when the development of a piece of
open source code has reached an impasse. The project is
forked so that the code can be developed independently in different ways with different results.