Ggit.Repository.rebase_init

### Method

# Ggit Repositoryrebase_init

#### Declaration [src]

    GgitRebase*
    ggit_repository_rebase_init (
      GgitRepository* repository,
      GgitAnnotatedCommit* branch,
      GgitAnnotatedCommit* upstream,
      GgitAnnotatedCommit* onto,
      GgitRebaseOptions* options,
      GError** error
    )

#### Description [src]

Initializes a rebase operation to rebase the changes in `branch` relative to `upstream` onto another branch. To begin the rebase process, call git_rebase_next(). When you have finished with this object, call g_object_unref().

#### Parameters

`branch` | `GgitAnnotatedCommit`
| The terminal commit to rebase, or `NULL` to rebase the current branch.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`upstream` | `GgitAnnotatedCommit`
| The commit to begin rebasing from, or `NULL` to rebase all reachable commits.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`onto` | `GgitAnnotatedCommit`
| The branch to rebase onto, or `NULL` to rebase onto the given upstream.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`options` | `GgitRebaseOptions`
| A `GgitRebaseOptions` to specify how rebase is performed, or `NULL`.
| The data is owned by the caller of the function.
`error` | `GError **`
| The return location for a `GError*`, or `NULL`.

#### Return value

Returns: | `GgitRebase`
| A newly allocated `GgitRebase`.
| The caller of the method takes ownership of the data, and is responsible for freeing it.
| The return value can be `NULL`.