"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. "