org.eclipse.jgit.api

## Class CloneCommand

- java.lang.Object
- - org.eclipse.jgit.api.GitCommand<T>
  - - org.eclipse.jgit.api.TransportCommand<CloneCommand,Git>
    - - org.eclipse.jgit.api.CloneCommand

All Implemented Interfaces:
  Callable<Git>

    public class CloneCommand
    extends TransportCommand<CloneCommand,Git>

Clone a repository into a new working directory

See Also:
  Git documentation about Clone

### Field Summary

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

`credentialsProvider, timeout, transportConfigCallback`

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

`repo`

### Constructor Summary

Constructors
Constructor and Description
`CloneCommand()` Create clone command with no repository set

### Method Summary

Methods
`Git` `call()` Executes the `Clone` command.
`CloneCommand` `setBare(boolean bare)`
`CloneCommand` `setBranch(String branch)`
`CloneCommand` `setBranchesToClone(Collection<String> branchesToClone)`
`CloneCommand` `setCloneAllBranches(boolean cloneAllBranches)`
`CloneCommand` `setCloneSubmodules(boolean cloneSubmodules)`
`CloneCommand` `setDirectory(File directory)` The optional directory associated with the clone operation.
`CloneCommand` `setNoCheckout(boolean noCheckout)`
`CloneCommand` `setProgressMonitor(ProgressMonitor monitor)` The progress monitor associated with the clone operation.
`CloneCommand` `setRemote(String remote)` The remote name used to keep track of the upstream repository for the clone operation.
`CloneCommand` `setURI(String uri)`

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

`configure, configure, self, setCredentialsProvider, setTimeout, setTransportConfigCallback`

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

#### CloneCommand

    public CloneCommand()

Create clone command with no repository set

### Method Detail

#### call

    public Git call()
             throws GitAPIException,
                    InvalidRemoteException,
                    TransportException

Executes the `Clone` command.

Specified by:
  `call` in interface `Callable<Git>`
Specified by:
  `call` in class `GitCommand<Git>`
Returns:
  the newly created `Git` object with associated repository
Throws:
  `InvalidRemoteException`
  `TransportException`
  `GitAPIException`

#### setURI

    public CloneCommand setURI(String uri)

Parameters:
  `uri` - the uri to clone from
Returns:
  this instance

#### setDirectory

    public CloneCommand setDirectory(File directory)

The optional directory associated with the clone operation. If the directory isn't set, a name associated with the source uri will be used.

Parameters:
  `directory` - the directory to clone to
Returns:
  this instance
See Also:
  `URIish.getHumanishName()`

#### setBare

    public CloneCommand setBare(boolean bare)

Parameters:
  `bare` - whether the cloned repository is bare or not
Returns:
  this instance

#### setRemote

    public CloneCommand setRemote(String remote)

The remote name used to keep track of the upstream repository for the clone operation. If no remote name is set, the default value of `Constants.DEFAULT_REMOTE_NAME` will be used.

Parameters:
  `remote` - name that keeps track of the upstream repository
Returns:
  this instance
See Also:
  `Constants.DEFAULT_REMOTE_NAME`

#### setBranch

    public CloneCommand setBranch(String branch)

Parameters:
  `branch` - the initial branch to check out when cloning the repository. Can be specified as ref name (`refs/heads/master`), branch name (`master`) or tag name (`v1.2.3`).
Returns:
  this instance

#### setProgressMonitor

    public CloneCommand setProgressMonitor(ProgressMonitor monitor)

The progress monitor associated with the clone operation. By default, this is set to `NullProgressMonitor`

Parameters:
  `monitor` -
Returns:
  `this`
See Also:
  `NullProgressMonitor`

#### setCloneAllBranches

    public CloneCommand setCloneAllBranches(boolean cloneAllBranches)

Parameters:
  `cloneAllBranches` - true when all branches have to be fetched (indicates wildcard in created fetch refspec), false otherwise.
Returns:
  `this`

#### setCloneSubmodules

    public CloneCommand setCloneSubmodules(boolean cloneSubmodules)

Parameters:
  `cloneSubmodules` - true to initialize and update submodules. Ignored when `setBare(boolean)` is set to true.
Returns:
  `this`

#### setBranchesToClone

    public CloneCommand setBranchesToClone(Collection<String> branchesToClone)

Parameters:
  `branchesToClone` - collection of branches to clone. Ignored when allSelected is true. Must be specified as full ref names (e.g. `refs/heads/master`).
Returns:
  `this`

#### setNoCheckout

    public CloneCommand setNoCheckout(boolean noCheckout)

Parameters:
  `noCheckout` - if set to `true` no branch will be checked out after the clone. This enhances performance of the clone command when there is no need for a checked out branch.
Returns:
  `this`