docs: def push(self):
          """
          Push the changes back to the remote(s) after fetching
          """
          print('pushing...')
          push_kwargs = {}
          push_args = []
  
          if self.settings['push.tags']:
              push_kwargs['push'] = True
  
          if self.settings['push.all']:
              push_kwargs['all'] = True
          else:
              if '.' in self.remotes:
                  self.remotes.remove('.')
  
                  if not self.remotes:
                      # Only local target branches,
                      # `git push` will fail
                      return
  
              push_args.append(self.remotes)
  
          try:
              self.git.push(*push_args, **push_kwargs)
              self.pushed = True
          except GitError as error:
              error.message = "`git push` failed"
              raise error