code: func (t *Tag) Commit() (*Commit, error) {
  	if t.TargetType != plumbing.CommitObject {
  		return nil, ErrUnsupportedObject
  	}
  
  	o, err := t.s.EncodedObject(plumbing.CommitObject, t.Target)
  	if err != nil {
  		return nil, err
  	}
  
  	return DecodeCommit(t.s, o)
  }
docs: // Commit returns the commit pointed to by the tag. If the tag points to a
  // different type of object ErrUnsupportedObject will be returned.