The 20-year-old winger has signed for the Championship side on a three-year deal with City set to receive a compensation fee for the player.
"It is a relief to get the deal done because there was a bit of speculation but I am happy to be here now," he told the official Preston website.
"I have been at Bristol since I was nine years old and I thought it was time for a change really. It is a good move to better myself as a footballer."