A “fork” in a cryptocurrency programming term, is the modification of the open-source code of a blockchain which is similar to the original, but with significant alterations. Forks are often used to test processes and are more often used to implement a fundamental change or create a new asset with similar features as the original. This results in two blockchains, the old original blockchain and the new upgraded blockchain. The two blockchains can comfortably co-exist but eventually most people move to the new blockchain as the old blockchain becomes outdated.
Due to widely spread open-source codebase, forks happen unintentionally when the nodes do not reproduce the same data. These forks are typically recognised and resolved but one of the main reason forks occur is due to a disagreement over the features of an asset and its blockchain. It is important to note that forks share the same history as the transactions on each of the blockchains are identical before the split occurs.