Shepherd is a city in San Jacinto County, Texas, United States. The population was 2,319 at the 2010 census.