code: func (r *Repo) pull() error {
  
  	// if not pulled, perform clone
  	if !r.pulled {
  		return r.clone()
  	}
  
  	// if latest tag config is set
  	if r.Branch == latestTag {
  		return r.checkoutLatestTag()
  	}
  
  	params := append([]string{"pull"}, append(r.PullArgs, "origin", r.Branch)...)
  	var err error
  	if err = r.gitCmd(params, r.Path); err == nil {
  		r.pulled = true
  		r.lastPull = time.Now()
  		Logger().Printf("%v pulled.\n", r.URL)
  		r.lastCommit, err = r.mostRecentCommit()
  	}
  	return err
  }
docs: // pull performs git pull, or git clone if repository does not exist.