Why does knuckles fight with sonic?
There are various reasons why Knuckles and Sonic fight. Sometimes Dr. Robotnik, AKA "Eggman", tricks Knuckles into believing that he has turned good and that Sonic is in fact, the bad guy. When Knuckles first made his debut in Sonic the Hedgehog 3, Dr. Robotnik tricked Knuckles into thinking that Sonic came to the island to steal the emeralds. Near the end of the game, Dr. Robotnik turns on knuckles by stealing the emeralds for his new weapon which Sonic and Knuckles teamed up to destroy. Since then, Knuckles has been a valuable ally for Sonic, when the two don't disagree.
Another reason Knuckles and Sonic fight is because of their personality differences. Sonic is cocky, arrogant, and free spirited; Knuckles is stern, hotheaded, and quick to anger. Sonic frequently catches Knuckles at the worst times like when Knuckles is being flirted with, with that in mind Sonic taunts Knuckles on for days like an immature child. This also eggs on fights.