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.