When you say "head of cabbage", you're actually saying "head of head". This dates back to the Proto-Indo-European word kaput, meaning "head" (also the source of decapitate, capital, and the aforementioned chattel and cattle). In Latin, this became caput (this was additionally used in the first Harry Potter book as a Gryffindor password, caput draconis or "dragon's head"). Eventually, as Latin died out (effectively) and the word passed into French as caboce, then caboche later, still with the definition "head". At this point in Middle French, caboche eventually transitioned fully into the definition "cabbage", due to colloquial terms that compared the vegetable to the shape and size of a human head. A similar occurrence was underway in Italy at the same time; apparently the similarity was uncanny back then. Though the definition was now what it currently is, caboche still had some changes to undergo. As many French words did, this one snuck into the English vernacular, as caboge, in the middle of the fifteenth century. Due to bad spelling, poets trying to be fancy, and literary errors, this eventually phased into the spelling cabbage, with the same pronunciation.
Adam Aleksic has been described as the internet's sixth most famous etymologist. He loves writing about himself in the third person, he's a freshman at Harvard University, and he has disturbing interests in linguistics, vexillology, geography, board games, limericks, and law.
The Etymology Nerd