Garrett is one of my sons' names. So of course I love the name. I feel strongly about this spelling. It is the most common, at least in the U.S.
Garret means attic, and Garet or Garett aren't options IMO. (I have to tell you, though, that some people who don't know my son's name is spelled
Garrett use
Garret. I once also saw Garrette or maybe it was Garette.)
His middle name is
John, after his father.
Garrett William sounds fine to me.
BTW, the name
Garrett has a long history in my family. It originally came from one of the first Dutch settlers in New
York (New Amsterdam), back in the 1600s. His name was
Gerrit, the Dutch spelling. The name was Anglicized to
Garrett and has been used in my family for 400 years now.
I noticed that Bear posted an origin of the name that is Anglo-Norman. But in my family it comes from the Dutch.