The 22-year-old, who can also play at full-back, joined from Bristol City in January after two previous loan spells and he has played in every match so far this season.
"Joe has got a great future in the game and we spotted his potential very early," manager Gary Johnson said.
"And so we want to make sure he is comfortable and enjoying it here. He is enjoying the Championship and has certainly been one of our most consistent performers so far.
"I am very pleased that we have tied him down for another year."