It is correct English to say "I have long hair." Also, It is both grammatically correct and colloquial to say "I've got long hair."
However, in SOME instances "I've got" implies a transaction.
Example:
I have a cinnamon bun= shows possession only (it is in my hand).
I've got a cinnamon bun= implies you purchased it from someone or perhaps stole it from your father without him knowing. Either way, a transaction happened.
That said, you could say "I've got long hair" and nobody would think it sounded weird.
There are no instances where we say "I'm got (something)."