code: def update_git(self, event: "GitProgressEvent") -> None:
      phase, completed, total, message, *_ = event
      if phase:
          message = (phase + " | " + message) if message else phase
      if message:
          self.set_msg(message)
      force_refresh = (  # force-refresh progress bar when:
          (
              total and completed and completed >= total
          )  # the task completes
          or total != self.total  # the total changes
          or phase != self._last_phase  # or, the phase changes
      )
      if completed is not None:
          self.update_to(completed, total)
      if force_refresh:
          self.refresh()
      self._last_phase = phase
  
imports: import os
  from contextlib import contextmanager
  from functools import partial
  from typing import TYPE_CHECKING, Iterator, List, Literal, Mapping, Optional, Union, overload
  from funcy import group_by
  from scmrepo.base import Base
  from scmrepo.git import Git
  from scmrepo.noscm import NoSCM
  from dvc.exceptions import DvcException
  from dvc.progress import Tqdm
label_desc: Use image node_id 2 for calling the TqdmGit obj's underlying member method code with example usage: obj.update_git(event) without return types