Old English gan "to advance, walk; depart, go away; happen, take place; conquer; observe, practice, exercise," from West Germanic *gaian (source also of Old Saxon, Old Frisian gan, Middle Dutch gaen, Dutch gaan, Old High German gan, German gehen), from PIE root *ghē- "to release, let go; be released" (source also of Sanskrit jihite "goes away," Greek kikhano "I reach, meet with"), but there does not seem to be general agreement on a list of cognates.
A defective verb throughout its recorded history; the Old English past tense was eode, a word of uncertain origin but evidently once a different verb (perhaps connected to Gothic iddja); it was replaced 1400s by went, past tense of wenden "to direct one's way" (see wend). In northern England and Scotland, however, eode tended to be replaced by gaed, a construction based on go. In modern English, only be and go take their past tenses from entirely different verbs.
The word in its various forms and combinations takes up 45 columns of close print in the OED. Meaning "cease to exist" is from c. 1200; that of "to appear" (with reference to dress, appearance, etc.) is from late 14c.; that of "to be sold" is from early 15c. Meaning "to be known" (with by) is from 1590s; that of "pass into another condition or state" is from 1580s. From c. 1600 as "to wager," hence also "to stand treat," and to go (someone) better in wagering (1864). Meaning "say" emerged 1960s in teen slang. Colloquial meaning "urinate or defecate" attested by 1926, euphemistic (compare Old English gong "a privy," literally "a going").
To go back on "prove faithless to" is from 1859; to go under in the figurative sense "to fail" is from 1849. To go places "be successful" is by 1934.