When a gem is built and pushed to rubygems, the command to shell out to git is replaces with the results of that command. When using the gem from git, the git commands are run every time the gem is loaded. Shelling out is costly (slow) and requires that any system that you deploy to must have git available in the path. Use Ruby instead to get around this.