In the bitcoin scaling debate, the word "fork" is used very often, but be aware that it can have quite many different meanings:
- Software fork: When someone takes some existing open source software, rebrands it and develops often in a slightly different direction than the original developers intended, often the fork of the software project becomes a competitor to the "original" product. Many other crypto currencies (notably Litecoin) are software forks of Bitcoin Core, and there are also btc1, Bitcoin Unlimited, Bitcoin Classic and Bitcoin XT being forks of the Bitcoin Core.
- Github fork: Github uses the word "fork" a bit more liberally, if someone wants to contribute to an open source project they are encouraged to do work on their own "fork", this usually neither means rebranding nor another direction than the original developers intended. Almost all features and bugfixes to go into Bitcoin is developed on separate forks maintained in github.
- Soft fork: This wording was invented in the Bitcoin environment and is hardly found outside the crypto currency scene. It means a backward-compatible protocol change, which again means the network will still work even for users on old software. People on old software may still be at a disadvantage. As an example, old email software understood only text - but today most email software supports images, different text sizes, styles and fonts in the emails. Using old software, one will typically either get up the text but none of the formatting nor images, or one will not be able to read the email at all - the users are at a disadvantage, but they are still able to receive and send basic emails.
- Hard fork: This wording was invented in the Bitcoin environment and is hardly found outside the crypto currency scene. It means a protocol change that isn't backward compatible. Everyone will need to upgrade their software, or they will get excluded from the network. If a significant amount of people fail to upgrade, or denies upgrading, we'll get a chain fork - efficiently two new networks, one network for the upgraded software and one network consisting of the non-upgraded software.
- Chain fork (or chain split): The blocks are forming a chain, every block is supposed to have one parent and one child. Sometimes a block gets two children (through racing conditions, software bugs, malicious intent or due to disagreements on protocol upgrades), and we have a chain fork. Accidental "sibling" blocks happens every now and then in the Bitcion network due to racing conditions, but those incidents are usually resolved quickly, one of the blocks gets "orphaned", it gets no children, it's forgotten and no longer a part of the chain.
- Coin fork (or coin split): under normal conditions, every transaction will be valid on both chains right after a chain fork - but after a while, the histories will diverge and most transactions will be valid only on one of the chains. By then there efficiently exists two currencies, one that can be used at one side of the split and another that can be used at the other side of the split. In controlled conditions, one may get some "replay protection" ensuring different software needs to be used on the different chains, and some rebranding so the two coins have different names.
- Cutlery fork: A utensil with two or more prongs, used for eating or serving food.
- Pitchfork: something used by angry bitcoin mobs wanting a soft fork or a hard fork ... but hey wait, are you still reading? Enough about forks now!