code: function pull(options) {
      options = options || {};
  
      var branchOrTag = options.branch || options.tag;
  
      var args = [
        'pull',
        options.rebase ? '--rebase' : null,
        options.remote || 'origin',
        branchOrTag || git.getCurrentBranch
      ];
  
      return git(args)
          .then(silent);
    }
docs: Pulls a remote branch into the current one
  Executes `git pull origin master`
  
  remote defaults to "origin", and don't follow configured refspecs
  for the upstream
  
  If both a branch and a tag are specified, the branch takes precedence
  
  When no branch and tag are specifies, this command will try
  to pull the actual local branch name from the remote
  
  @example
  var git = require('gitftw');
  
  //While in master...
  git.getCurrentBranch().then(console.log)
  //Outputs: master
  
  //Pulls origin/master into the current branch (master)
  git.pull()
  
  @memberof git
  @type {command}
  
  @param {Object} options The options object. All its properties are {@link Resolvable}
  @param {Resolvable|String} [options.remote="origin"] The remote
  @param {Resolvable|String} [options.branch=currentBranch] The remote branch to pull
  @param {Resolvable|String} [options.tag] The remote tag to pull
  @param {Resolvable|Boolean} [options.rebase] Make a rebase (--rebase tag)
  @param {callback} [cb] The execution callback result
  @return {Promise} Resolves with undefined