Package org.eclipse.jgit.api

## Class StashCreateCommand

- java.lang.Object
- - org.eclipse.jgit.api.GitCommand<RevCommit>
  - - org.eclipse.jgit.api.StashCreateCommand

All Implemented Interfaces:
  `Callable<RevCommit>`

    public class StashCreateCommand
    extends GitCommand<RevCommit>

Command class to stash changes in the working directory and index in a commit.

Since:
  2.0
See Also:
  Git documentation about Stash

### Field Summary

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

`repo`

### Constructor Summary

Constructors
`StashCreateCommand​(Repository repo)` Create a command to stash changes in the working directory and index

### Method Summary

All Methods Instance Methods Concrete Methods
`RevCommit` `call()` Stash the contents on the working directory and index in separate commits and reset to the current HEAD commit.
`StashCreateCommand` `setIncludeUntracked​(boolean includeUntracked)` Whether to include untracked files in the stash.
`StashCreateCommand` `setIndexMessage​(String message)` Set the message used when committing index changes
`StashCreateCommand` `setPerson​(PersonIdent person)` Set the person to use as the author and committer in the commits made
`StashCreateCommand` `setRef​(String ref)` Set the reference to update with the stashed commit id If null, no reference is updated
`StashCreateCommand` `setWorkingDirectoryMessage​(String message)` Set the message used when committing working directory changes

### 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`

### Constructor Detail

#### StashCreateCommand

    public StashCreateCommand​(Repository repo)

Create a command to stash changes in the working directory and index

Parameters:
  `repo` -

### Method Detail

#### setIndexMessage

    public StashCreateCommand setIndexMessage​(String message)

Set the message used when committing index changes

The message will be formatted with the current branch, abbreviated commit id, and short commit message when used.

Parameters:
  `message` -
Returns:
  `this`

#### setWorkingDirectoryMessage

    public StashCreateCommand setWorkingDirectoryMessage​(String message)

Set the message used when committing working directory changes

The message will be formatted with the current branch, abbreviated commit id, and short commit message when used.

Parameters:
  `message` -
Returns:
  `this`

#### setPerson

    public StashCreateCommand setPerson​(PersonIdent person)

Set the person to use as the author and committer in the commits made

Parameters:
  `person` -
Returns:
  `this`

#### setRef

    public StashCreateCommand setRef​(String ref)

Set the reference to update with the stashed commit id If null, no reference is updated

This value defaults to `Constants.R_STASH`

Parameters:
  `ref` -
Returns:
  `this`

#### setIncludeUntracked

    public StashCreateCommand setIncludeUntracked​(boolean includeUntracked)

Whether to include untracked files in the stash.

Parameters:
  `includeUntracked` -
Returns:
  `this`
Since:
  3.4

#### call

    public RevCommit call()
                   throws GitAPIException

Stash the contents on the working directory and index in separate commits and reset to the current HEAD commit.

Specified by:
  `call` in interface `Callable<RevCommit>`
Specified by:
  `call` in class `GitCommand<RevCommit>`
Returns:
  stashed commit or null if no changes to stash
Throws:
  `GitAPIException`