Git's advantages over Subversion and Mercurial "Git has been gaining share for open source development largely because of its distributed architecture. It is designed by Linus Torvalds and used for Linux itself, so that gives it great credibility," says IDC's Hilwa. "Being distributed and having a native command-line interface does not make it easy, but there are plug-ins for the major IDEs."
"The Android project, for example, has been a really big driver of Git adoption because it uses Git to take contributions," notes Scott Chacon, a Git evangelist. Large telecommunication companies must now use Git to participate in Android development, he adds.
So what's so great about Git? For one, "you can have multiple nodes" and push changes to them, Chacon says. He is part owner of GitHub, which provides a hosting platform for Git that has about 830,000 users. (He estimates the number of Git users to be in the millions.)
"You can use [Git] in ways that you can't in Subversion," which is a centralized version control system, Chacon says. For example, developers can work offline and do not have to be connected to the server at all times. Compared to Subversion, Git "improves the efficiency of developers. The branching system is hugely superior, and it makes workflows that are a lot of better for development and for team collaboration." It also is fast and cryptographically secure, he notes.
Git is very similar to the Mercurial distributed version control system, Chacon says, but Git has a stronger community around it. "Git has a larger user base right now. GitHub only supports Git, and Heroku only supports Git," he says. (Heroku is a cloud application development platform acquired by Salesforce.com last year.)
Given Git's many advantages, Eclipse is making Git its preferred version control system, a move inspired by developers and members. "[For] all new projects, we highly recommend that they start with Git, and we're encouraging existing projects to transition, but we're not forcing projects to switch," says Mike Milinkovich, Eclipse's executive director.
Git, he says, makes it easier to accept code contributions from outside the community: "Just the mechanics of the process of somebody pushing a change to Eclipse is a lot easier than what we had in the past." Previously, developers had to attach a patch and apply it in CVS. Git's distributed nature also simplifies the process of having multiple people and projects committing changes, Milinkovich says. "It makes it simpler to experiment and merge those experiments back together into the main line."