The 24-year-old has a total of 57 Super Rugby caps to his name having previously played with the Bulls from 2009 to 2011, in which time he enjoyed both Super Rugby and Currie Cup success.
In making the move to Munster, the young back, who can play on the wing, in the centre and at full-back, joins his former Blue Bulls team-mate CJ Stander.
"He is a wing, centre and full-back with a lovely kick and is exceptionally fast so he should be a great addition to the squad. We are very happy to have him coming to us and I know they are disappointed to see him go from the Stormers."
Gerhard added: "I am looking forward to joining Munster and I am humbled by the trust shown in my character and ability to be granted the honour of becoming part of the Munster way of life.
"I will work diligently to justify the faith put in me and I will do my utmost to make a purposeful impact at the province every day. For now I will focus on playing my part to assist Western Province in defending the Currie Cup title."