code: def fetch(self, refspec=None, progress=None, **kwargs):
          
          if refspec is None:
              # No argument refspec, then ensure the repo's config has a fetch refspec.
              self._assert_refspec()
          kwargs = add_progress(kwargs, self.repo.git, progress)
          if isinstance(refspec, list):
              args = refspec
          else:
              args = [refspec]
  
          proc = self.repo.git.fetch(self, *args, as_process=True, with_stdout=False,
                                     universal_newlines=True, v=True, **kwargs)
          res = self._get_fetch_info_from_stderr(proc, progress)
          if hasattr(self.repo.odb, 'update_cache'):
              self.repo.odb.update_cache()
          return res
docs: Fetch the latest changes for this remote
  
          :param refspec:
              A "refspec" is used by fetch and push to describe the mapping
              between remote ref and local ref. They are combined with a colon in
              the format <src>:<dst>, preceded by an optional plus sign, +.
              For example: git fetch $URL refs/heads/master:refs/heads/origin means
              "grab the master branch head from the $URL and store it as my origin
              branch head". And git push $URL refs/heads/master:refs/heads/to-upstream
              means "publish my master branch head as to-upstream branch at $URL".
              See also git-push(1).
  
              Taken from the git manual
  
              Fetch supports multiple refspecs (as the
              underlying git-fetch does) - supplying a list rather than a string
              for 'refspec' will make use of this facility.
          :param progress: See 'push' method
          :param kwargs: Additional arguments to be passed to git-fetch
          :return:
              IterableList(FetchInfo, ...) list of FetchInfo instances providing detailed
              information about the fetch results
  
          :note:
              As fetch does not provide progress information to non-ttys, we cannot make
              it available here unfortunately as in the 'push' method.