I usually find that it is not helpful to migrate history from one version control system to another. I usually just migrate interesting baselines. This works best when you can keep the legacy system around for historical purposes and I realize that this may be difficult to do with ClearCase but still migrating the version history is often less than completely useful.
our team has just moved from IBM's RTC to Git not long before, with an unfinished project. We downloaded Codebase Origin from the original stream, Codebase A from Stream A, and Codebase B from Stream B. One developer made all patches between Origin and A, and then between Origin and B. A manifest was produced, which devides Codebase Origin into 600+ projects. These projects' codes were pushed to the server, stored in Branch Origin of each project. We then created Branch A from Branch Origin with the patches between Origin and A. The same was done to create Branch B. Manifest A and Manifest B were produced by adding 'revison=Branch A' and 'revison=Branch B' in the projects which had been applied with any of the patches. The manifests themselves are managed by a seperate git with Branch Origin, A and B.
So now if we want to download Codebase A, we just run 'repo init -u someUrlOfManifest -b BranchA' and 'repo sync' to download Codebase A. If some specific project is needed, just run 'git clone someUrlOfProject [-b BranchName]'. You can get detailed info from any git related websites or books.