Dortmund said in a statement that the 20-year-old defender has signed a five-year deal through June 2019 after passing a medical examination on Wednesday.
Ginter was part of Germany's 23-man World Cup-winning squad, though he did not play in Brazil.
Ginter made 70 Bundesliga appearances for hometown club Freiburg. He played all 34 league games last season, missing only 21 minutes. He joined Freiburg in 2005.
Both Dortmund and Freiburg agreed not to reveal transfer fee details.
Ginter says, "A boyhood-dream came true for me today. I have always been a big Dortmund fan and now I can wear the shirt of my favorite club. I want to take the next step in my sporting development in Dortmund."