The 19-year-old, who had reportedly attracted interest from the Premier League, has become a regular member of the club's first team this season.
"I'm delighted we've managed to secure another young talent to an extended deal. Joe has worked very hard and shown us enough talent to earn this contract and hopefully it gives him the stability to establish himself at first-team level," club boss Derek McInnes told the club's website.
"He always wants to improve, ask questions and listens intently to your answers. He has an appetite to be the best he can be, and with the right guidance and development he can have a very promising future with Bristol City.
"I'm delighted he has shown the same commitment in signing the deal that we have shown in him. The hard work has to continue for Joe now, and he is well aware of that."
Bryan's contract will run until 2015.