The Technical Bit
From a technical point of view, as we've discussed in other posts, the 'rules' of bitcoin are written in the software. They specify what counts as a valid transaction, what counts as a valid block, what the mining schedule is and what the mining rewards are etc... The rules are enforced by every node running that software, meaning they ignore and do not forward invalid transactions or blocks. The copy of the blockchain they all maintain always obeys the rules. The rules, and therefore the definition of what bitcoin is, can be changed if the economic majority decide collectively to change them.
If there is consensus for a rule change and every single node runs software containing the change, then we have a smooth change with no conflict. If only some of the nodes implement the change and others don't we get a fork. The blockchain diverges at the point where a block is mined and accepted by some nodes, but considered invalid by others which will wait until they get a valid block, the timeline might be like this, if we consider the two factions as A and B :
blocks 0...n-3, n-2, n-1, n (all considered valid by both A and B).
Everyone in faction B agrees to run software which specifies that the rules change in a non-backward-compatible way after block n.
block nA+1 is then mined by a miner in faction A, faction B considers it illegal and ignores it.
block nB+1 is then mined by a miner in faction B, and faction A ignores it.
The miners in faction A will work on block n+2 and will build it referencing nA+1 as the previous block. The miners in faction B will also work on block n+2 but will build it referencing nB+1 as the previous block, and so on, with each side ignoring the blocks of the other side.
So we effectively now have two blockchains that are now completely separate but whose blocks are identical from block 0 to block n.
Bitcoin forks
Bitcoin chugged along for 8 years without a fork, until this year. All of the stake holders - miners, exchanges, developers, wallets, merchants, traders, investors, users etc were more or less happy with the rules. Nobody wanted a fork, and almost everyone saw it as the 'nuclear option', something only to be used if the economic majority were being strong-armed by a subset of stakeholders somehow. Everyone knew it would be terrible PR, cause user confusion and basically a confidence hit to the whole idea. It was always one of the arguments the naysayers had - "bitcoin could fork at any time, it would be chaos, everyone would leave and never trust crypto again".
Why the Bitcoin Cash fork happened
Well, as I've mentioned in many posts, bitcoin is started reaching the maximum transaction capacity in the last couple of years and some members of the community started to think it was becoming high priority, others didn't. This was the first rift. Then even when it did become high priority for everyone there was disagreement on how bitcoin should scale, which stemmed from differences of opinion about what properties and uses of bitcoin were the most important. I'll try to make a neutral summary of the point of view of both sides:
Bitcoin Core's view (the small blockers)
The general view here is that bitcoin's primary value is that it is censorship resistant, which depends on it being decentralised, meaning that there are many nodes and miners running the software distributed all over the world. This means it's difficult to shut down or coerce all or even a majority of nodes so the system cannot be interfered with.
Increasing the size of blocks to allow more transactions makes them larger in terms of data. All transactions and mined blocks need to propagate all over the world in real-time and be stored by nodes. Therefore as you increase the block size you increase the cost of running a node, and you increase the bandwidth requirements, meaning that as you increase it you may force some nodes to leave the network if they don't have fast enough connections to receive and send all of the data in time. Additionally if some miners hear about a new block before others, they get a head start on mining the next block so there are concerns related to that too.
They also argue that increasing the blocksize is at best kicking the can, if you want to scale bitcoin to ever rival centralised payment systems the blocks would have to be massive, and that the cost and expense of storing every trivial 'cup of coffee' transaction on the blockchain for ever is a waste and will never be practical. The solution instead is layers on top of bitcoin that use bitcoin as an escrow or trust-less settlement layer i.e. the lightning network.
Finally, doing any non-backwards change to consuenus rules is risky, you don't
know that all of the various software that 'speaks bitcoin' will actually make their changes be 100% compatible even if they intend to! so you might get an unintentional fork - no longer a single universal ledger!
In summary - increasing the blocksize is a threat to centralisation, it's short term band-aid, hard forks are risky, and layer 2 solutions are coming anyway.
Bitcoin Cash's view (the big blockers)
The general view here is that scaling is urgent. The current 1MB blocksize limit can easily be raised immediately to 2 or 4 or 8 MB without any real impact on node decentralisation or distribution. Moore's Law is still in effect, processing, storage and bandwidth is getting faster and cheaper all the time, so a limit imposed 8 years ago should no longer be suitable for today.
Satoshi never planned for the limit to stay at 1MB, in fact the original bitcoin code had no limit! and the 1MB limit was introduced to stop someone attacking the network by creating huge blocks which would still be legal. There's a quote from Satoshi about it:
"It can be phased in, like: if (blocknumber > 115000) maxblocksize = largerlimit It can start being in versions way ahead, so by the time it reaches that block number and goes into effect, the older versions that don’t have it are already obsolete."
You can argue that decentralisation is a function of adoption - that the most decentralised and secure blockchain will ultimately be the one with the highest market cap, which will be the one with the most users. The more users bitcoin has, the more merchants, businesses and exchanges it will have. The more of those there are, the more nodes there will be. Putting an unnecessary hard cap on the number of transactions caps the number of users. This is a terrible thing to do in the early stages of adoption of anything, and is one of the few ways bitcoin could lose its head-start and network effect over competitors.
If a blockchain technically can support more users than bitcoin chooses to without losing significant censorship resistance then another one will, and that one may overtake bitcoin before the layer 2 solutions are ready. On that note, there's no guarantee about when or even if things like the lightning network will actually work as hoped. Scaling is a really complex problem to solve and this is uncharted waters.
Heed the warning of Sean Parker on why Friendster got superseded by MySpace and why MySpace got superseded by Facebook despite the massive network effects of social networks:
https://www.youtube.com/watch?v=zVIhUVid4fA
Many were saying back in 2015: Bitcoin has never grown linearly, you can't extrapolate the linear growth from the current bear market. There will be another bull market, rally in price and period of exponential growth. When it starts it will happen quickly and if the infrastructure can't handle it we will be turning away masses of new users, and previous users who needed cheaper and faster transactions. You might only get one real chance at mainstream adoption.
The eventual fork, consequences, and my own view
I hope that I wrote the above in a way that is neutral enough that it's difficult to know whether I support Bitcoin Cash or Core.
The debate went on for months, and neither side could convince the other, but the vast majority sided with Core. It was a complete civil war, and it's still going on - v. The remainder decided to go ahead and fork and Bitcoin Cash was born in August. It has less users and adoption so the price is lower but the transactions are cheaper and faster. It has very little developer talent supporting it and they screwed up a change regarding the mining difficulty already.
There was no real noticeable damage to bitcoin, yet anyway. Bitcoin Cash immediately traded at a market value in the 100s but Bitcoin did not really fall in price at all. One interesting consequence of the fork was that the shared history of the blockchain up to the fork time means that the public addresses, the balance of coins they had and the private keys for those addresses were identical at the time of the fork. So if you had bitcoins stored on an exchange or with any other third party, they also had control of the bitcoin cash for the same address.
This put all of those 3rd parties in a weird position. Were they morally or even legally obliged to provide their users with the bitcoin cash? It meant added work and expense to do so, and many didn't want to support the fork at all if they were on the side of Core anyway. Eventually, perhaps worried about the legal aspect or ad PR, pretty much everyone has distributed the bitcoin cash balance to users by now (coinbase finally did it yesterday), and most of the exchanges figured they might as well support trading it since so many of their users now have a balance of it and the site had to support withdrawals anyway. At least allowing trading means they can make some income from it. What this has done is perhaps set a weird precedent, and shown that if you fork bitcoin instead of creating an alt-coin you might have a much better chance of getting support from exchanges.... hence all the other awful forks springing up.
I wish the fork hadn't happened like this, I wish it was obviously clear how to scale bitcoin and that everyone was on the same side working towards it. On the other hand maybe we can never know without just trying both. Mutate each way, and leave it to natural selection, healthy competition. Part of me is glad a fork happened, just to prove it could happen and not be fatal.
None of the other forks matter - bitcon gold, diamond etc are all just garbage and not worth talking about, they'll have trivial adoption if any.