I think that what @TimMoore  is suggesting is something like this:

```ruby
        def git(command, check_errors = true)
          remaining_retries = 0
          while remaining_retries < @max_retries
            if @allow?
               out = %x{git #{command}}
               return out unless check_errors && $?.exitstatus != 0
               remaining_retries += 1
            else
              raise GitError, "Bundler is trying to run a `git #{command}` at runtime. You probably need to run `bundle install`. However, " \
                              "this error message could probably be more useful. Please submit a ticket at http://github.com/bundler/bundler/issues " \
                              "with steps to reproduce as well as the following\n\nCALLER: #{caller.join("\n")}"
            end
          end
          msg = "Git error: command `git #{command}` in directory #{Dir.pwd} has failed."
          msg << "\nIf this error persists you could try removing the cache directory '#{path}'" if path.exist?
          raise GitError, msg
        end
```

What do you think @flyinprogramer?