西汉太初四年(前101年),境内古城滩曾设龟兹县。
东汉永初五年(111年),废。
明清时归常乐堡领辖。
民国属第五区河东乡(乡公所设在牛家梁村)管辖,有四保:一保(古城滩等村)、二保(头道河则等村)、三保(牛家梁等村)、四保(二道河则等村)。
1949年10月后,设七区(河东区)所辖为该辖区的3个乡:一乡(头道河则乡)辖5个行政村,二乡(牛家梁乡)辖4个行政村,三乡(赵元湾乡)辖4个行政村。
1956年3月,将原牛家梁区的头道河则、古城滩、牛家梁3个乡,合并为榆林县直属乡(区级)。
1958年9月,撤区并乡,并成立牛家梁公社。
1959年4月,改制为牛家梁农林牧场。
1960年1月,扩建为牛家梁农场。
1969年1月,将牛家梁、古城滩2个分场合并改制为牛家梁公社,有13生产大队、61生产队。
1984年7月,改为牛家梁乡。
1989年7月,吴家梁村划归榆阳乡。
1997年11月,改乡为镇。