code: def clone(self, url, update_after_clone=True, bare=False):
          
          url = self._get_url(url)
          cmd = ['clone']
          if bare:
              cmd.append('--bare')
          elif not update_after_clone:
              cmd.append('--no-checkout')
          cmd += ['--', '"%s"' % url, '"%s"' % self.path]
          cmd = ' '.join(cmd)
          # If error occurs run_git_command raises RepositoryError already
          self.run_git_command(cmd)
docs: Tries to clone changes from external location.
  
          :param update_after_clone: If set to ``False``, git won't checkout
            working directory
          :param bare: If set to ``True``, repository would be cloned into
            *bare* git repository (no working directory at all).