Sane had been linked with a number of clubs throughout the summer but has opted to move to the Citizens, with the Premier League club parting with a reported £37 million to secure the signature of the 20-year-old.
It is also understood that the deal could eventually rise to £42m due to add-ons.
READ MORE | 'Stones can be Pep's new Pique'
Sane, who came through the youth ranks at Schalke, scored 13 goals in 57 senior appearances for the club and was also named in the Germany squad for Euro 2016.
Sane becomes Guardiola's fifth signing of the summer, following the acquisitions of Ilkay Gundogan, Nolito, Oleksandr Zinchenko and Aaron Mooy.