code: func (s *GitService) GetRef(ctx context.Context, owner string, repo string, ref string) (*Reference, *Response, error) {
  	ref = strings.TrimPrefix(ref, "refs/")
  	u := fmt.Sprintf("repos/%v/%v/git/refs/%v", owner, repo, url.QueryEscape(ref))
  	req, err := s.client.NewRequest("GET", u, nil)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	r := new(Reference)
  	resp, err := s.client.Do(ctx, req, r)
  	if _, ok := err.(*json.UnmarshalTypeError); ok {
  		// Multiple refs, means there wasn't an exact match.
  		return nil, resp, errors.New("no exact match found for this ref")
  	} else if err != nil {
  		return nil, resp, err
  	}
  
  	return r, resp, nil
  }
docs: // GetRef fetches a single Reference object for a given Git ref.
  // If there is no exact match, GetRef will return an error.
  //
  // Note: The GitHub API can return multiple matches.
  // If you wish to use this functionality please use the GetRefs() method.
  //
  // GitHub API docs: https://developer.github.com/v3/git/refs/#get-a-reference