Merge Git Repositories While Preserving History

Merge two Git repositories into one while preserving the full commit history of both projects.