async function fetch(repositoryUrl, execaOpts) {
  try {
    await execa('git', ['fetch', '--unshallow', '--tags', repositoryUrl], execaOpts);
  } catch (error) {
    await execa('git', ['fetch', '--tags', repositoryUrl], execaOpts);
  }
}
async function fetch(repositoryUrl, execaOpts) {
  try {
    await execa('git', ['fetch', '--unshallow', '--tags', repositoryUrl], execaOpts);
  } catch (error) {
    await execa('git', ['fetch', '--tags', repositoryUrl], execaOpts);
  }
}
async function fetch ( repositoryUrl , execaOpts ) { try { await execa ( 'git' , [ 'fetch' , '--unshallow' , '--tags' , repositoryUrl ] , execaOpts ) ; } catch ( error ) { await execa ( 'git' , [ 'fetch' , '--tags' , repositoryUrl ] , execaOpts ) ; } }
Unshallow the git repository if necessary and fetch all the tags.

@param {String} repositoryUrl The remote repository URL.
@param {Object} [execaOpts] Options to pass to `execa`.
Unshallow the git repository if necessary and fetch all the tags .
Fetch the tags from the specified repository