def rebase(upstream, opts = {})
      args = []
      if opts[:interactive]
        logger.info { "Interactively rebasing #{branches.current.name} against #{upstream}" }
        args << '-i'
        args << upstream
      elsif opts[:oldbase]
        logger.info { "Doing rebase from #{opts[:oldbase]} against #{upstream} on #{branches.current.name}" }
        args << '--onto' << upstream << opts[:oldbase] << branches.current.name
      else
        logger.info { "Rebasing #{branches.current.name} against #{upstream}" }
        args << upstream
      end
      return command('rebase', args)
    end
def rebase(upstream, opts = {})
      args = []
      if opts[:interactive]
        logger.info { "Interactively rebasing #{branches.current.name} against #{upstream}" }
        args << '-i'
        args << upstream
      elsif opts[:oldbase]
        logger.info { "Doing rebase from #{opts[:oldbase]} against #{upstream} on #{branches.current.name}" }
        args << '--onto' << upstream << opts[:oldbase] << branches.current.name
      else
        logger.info { "Rebasing #{branches.current.name} against #{upstream}" }
        args << upstream
      end
      return command('rebase', args)
    end
`git rebase`

 @param [String] upstream the commit-ish to rebase against
 @option opts :interactive do an interactive rebase
 @option opts [String] :oldbase the old base to rebase from

 @return [String] the output of 'git rebase'