Het oude Duitse Rijk (tot 1806) kende geen vlag, hooguit de kleuren van het keizerlijke wapen: een dubbele adelaar op een gele achtergrond, geel en zwart dus.
In 1818 – bij de oprichting van een studentenbeweging, die zich voor de nationale eenheid wilde inzetten – wilde men weer een dergelijke vlag, maar door een vergissing meende men dat de kleuren zwart-rood-goud geweest waren. Sindsdien voerden de nationale bewegingen deze vlag, ook al werd hij verboden.
In maart 1848 werd de zwart, rood en goud vlag door de Duitse bond (tot 1866) aangenomen, gevolgd door ene rijkswet in november 1848 in de Nationale Vergadering te Frankfurt.
Bij de oprichting van het tweede Duitse keizerrijk ten tijde van Bismarck (1870/71) bepaalde hij dat zwart-wit-rood als de nationale vlag zou gelden. Het zwart-wit van Pruissen en het rood van de Hanzesteden waren de reden voor deze kleuren.
De regering van de Weimarer Republik besloot in 1919 een compromis te sluiten: de rijkskleuren waren zwart-rood-goud, de handelsvlag zwart-wit-rood met de rijkskleuren in een hoek. Dit werd vastgelegd in de grondwet van Weimar.
In maart 1933 schaften de nationaalsocialisten deze regeling weer af. Zwart-wit-rood werden weer de nationale kleuren; de nationale vlag werd de rode vlag met het hakenkruis.
Na de Tweede Wereldoorlog voerden zowel West- als Oost-Duitsland de zwart-rood-goud-vlag weer in. In Oost-Duitsland werd een embleem toegevoegd aan de vlag.