Герай Асадов родился в 1923 году в селе Шахсеван Ждановского (ныне Бейлаганского) района Азербайджанской ССР. По национальности — азербайджанец. После получения начального образования работал в колхозе.
В 1942 году Асадов был призван в Красную Армию и с июня того же года на фронте. Сражался на Курской дуге и в Молдавии. 6 октября 1944 года в бою за село Влаха, находящийся в 10 км юго-западнее румынского города Клуж, Асадов первым ворвался в расположение противника и гранатами уничтожил более 10 немцев. В бою за город Хуандин он уничтожил расчёт миномёта противника и открыл из него огонь, в результате чего погибли более двух десятков немецких солдат и офицеров. 12 октября в ходе боёв за станцию Маргит в Северной Трансильвании гвардии сержант Герай Асадов гранатами закидал пулемётное гнездо противника, препятствовавшее наступлению. Однако при попытке атаки, пулемёт вновь открыл огонь. Не имея больше гранат, Асадов с криком «Вперёд, за Родину!» закрыл своим телом амбразуру огневой точки.
Указом Президиума Верховного Совета СССР от 24 марта 1945 года ему присвоено звание Героя Советского Союза (посмертно).
Именем Асадова названа одна из улиц Баку, а также совхоз и средняя школа в родном селе и улица в городе Бейлаган.