Git and Mercurial follow similar models and have similar terminology. Mercurial's initial release was was only 12 days after Git's. How did these two projects, in initial development at the same time, end up so similar? Does anyone know the history?
Both were necessary because of problems with bitkeeper so they were both developed at the same time to solve the same problem.
If you want a distributed version control system, that looks like bitkeeper, then from the user's point of view any implementation is going to be pretty similar. Internaly they are quite different