org.eclipse.jgit.api

## Class RebaseCommand

- java.lang.Object
- - org.eclipse.jgit.api.GitCommand<RebaseResult>
  - - org.eclipse.jgit.api.RebaseCommand

All Implemented Interfaces:
  Callable<RebaseResult>

    public class RebaseCommand
    extends GitCommand<RebaseResult>

A class used to execute a `Rebase` command. It has setters for all supported options and arguments of this command and a `call()` method to finally execute the command. Each instance of this class should only be used for one invocation of the command (means: one call to `call()`)

See Also:
  Git documentation about Rebase

### Nested Class Summary

Nested Classes
`static interface` `RebaseCommand.InteractiveHandler` Allows configure rebase interactive process and modify commit message
`static class` `RebaseCommand.Operation` The available operations

### Field Summary

Fields
`static String` `REBASE_MERGE` The name of the "rebase-merge" folder for interactive rebases.
`static String` `STOPPED_SHA` The name of the "stopped-sha" file

### Fields inherited from class org.eclipse.jgit.api.GitCommand

`repo`

### Constructor Summary

Constructors
`protected` `RebaseCommand(Repository repo)`

### Method Summary

All Methods Instance Methods Concrete Methods
`RebaseResult` `call()` Executes the `Rebase` command with all the options and parameters collected by the setter methods of this class.
`RebaseCommand` `runInteractively(RebaseCommand.InteractiveHandler handler)` Enables interactive rebase
`RebaseCommand` `runInteractively(RebaseCommand.InteractiveHandler handler, boolean stopAfterRebaseInteractiveInitialization)` Enables interactive rebase
`RebaseCommand` `setOperation(RebaseCommand.Operation operation)`
`RebaseCommand` `setPreserveMerges(boolean preserve)`
`RebaseCommand` `setProgressMonitor(ProgressMonitor monitor)`
`RebaseCommand` `setStrategy(MergeStrategy strategy)`
`RebaseCommand` `setUpstream(AnyObjectId upstream)`
`RebaseCommand` `setUpstream(RevCommit upstream)`
`RebaseCommand` `setUpstream(String upstream)`
`RebaseCommand` `setUpstreamName(String upstreamName)` Optionally override the name of the upstream.
`RevCommit` `tryFastForward(RevCommit newCommit)` checks if we can fast-forward and returns the new head if it is possible

### Methods inherited from class org.eclipse.jgit.api.GitCommand

`checkCallable, getRepository, setCallable`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### REBASE_MERGE

    public static final String REBASE_MERGE

The name of the "rebase-merge" folder for interactive rebases.

See Also:
  Constant Field Values

#### STOPPED_SHA

    public static final String STOPPED_SHA

The name of the "stopped-sha" file

See Also:
  Constant Field Values

### Constructor Detail

#### RebaseCommand

    protected RebaseCommand(Repository repo)

Parameters:
  `repo` -

### Method Detail

#### call

    public RebaseResult call()
                      throws GitAPIException,
                             NoHeadException,
                             RefNotFoundException,
                             WrongRepositoryStateException

Executes the `Rebase` command with all the options and parameters collected by the setter methods of this class. Each instance of this class should only be used for one invocation of the command. Don't call this method twice on an instance.

Specified by:
  `call` in interface `Callable<RebaseResult>`
Specified by:
  `call` in class `GitCommand<RebaseResult>`
Returns:
  an object describing the result of this command
Throws:
  `GitAPIException`
  `WrongRepositoryStateException`
  `NoHeadException`
  `RefNotFoundException`

#### tryFastForward

    public RevCommit tryFastForward(RevCommit newCommit)
                             throws IOException,
                                    GitAPIException

checks if we can fast-forward and returns the new head if it is possible

Parameters:
  `newCommit` -
Returns:
  the new head, or null
Throws:
  `IOException`
  `GitAPIException`

#### setUpstream

    public RebaseCommand setUpstream(RevCommit upstream)

Parameters:
  `upstream` - the upstream commit
Returns:
  `this`

#### setUpstream

    public RebaseCommand setUpstream(AnyObjectId upstream)

Parameters:
  `upstream` - id of the upstream commit
Returns:
  `this`

#### setUpstream

    public RebaseCommand setUpstream(String upstream)
                              throws RefNotFoundException

Parameters:
  `upstream` - the upstream branch
Returns:
  `this`
Throws:
  `RefNotFoundException`

#### setUpstreamName

    public RebaseCommand setUpstreamName(String upstreamName)

Optionally override the name of the upstream. If this is used, it has to come after any `setUpstream(org.eclipse.jgit.revwalk.RevCommit)` call.

Parameters:
  `upstreamName` - the name which will be used to refer to upstream in conflicts
Returns:
  `this`

#### setOperation

    public RebaseCommand setOperation(RebaseCommand.Operation operation)

Parameters:
  `operation` - the operation to perform
Returns:
  `this`

#### setProgressMonitor

    public RebaseCommand setProgressMonitor(ProgressMonitor monitor)

Parameters:
  `monitor` - a progress monitor
Returns:
  this instance

#### runInteractively

    public RebaseCommand runInteractively(RebaseCommand.InteractiveHandler handler)

Enables interactive rebase

Does not stop after initialization of interactive rebase. This is equivalent to `runInteractively(handler, false)`;

Parameters:
  `handler` -
Returns:
  this

#### runInteractively

    public RebaseCommand runInteractively(RebaseCommand.InteractiveHandler handler,
                                          boolean stopAfterRebaseInteractiveInitialization)

Enables interactive rebase

If stopAfterRebaseInteractiveInitialization is `true` the rebase stops after initialization of interactive rebase returning `RebaseResult.INTERACTIVE_PREPARED_RESULT`

Parameters:
  `handler` -
  `stopAfterRebaseInteractiveInitialization` - if `true` the rebase stops after initialization
Returns:
  this instance
Since:
  3.2

#### setStrategy

    public RebaseCommand setStrategy(MergeStrategy strategy)

Parameters:
  `strategy` - The merge strategy to use during this rebase operation.
Returns:
  `this`
Since:
  3.4

#### setPreserveMerges

    public RebaseCommand setPreserveMerges(boolean preserve)

Parameters:
  `preserve` - True to re-create merges during rebase. Defaults to false, a flattening rebase.
Returns:
  `this`
Since:
  3.5