Class CommitCommand

  • All Implemented Interfaces:
    java.util.concurrent.Callable<RevCommit>

    public class CommitCommand
    extends GitCommand<RevCommit>
    A class used to execute a Commit command. It has setters for all supported options and arguments of this command and a call() method to finally execute the command.
    See Also:
    Git documentation about Commit
    • Constructor Detail

      • CommitCommand

        protected CommitCommand​(Repository repo)
        Parameters:
        repo -
    • Method Detail

      • setMessage

        public CommitCommand setMessage​(java.lang.String message)
        Parameters:
        message - the commit message used for the commit
        Returns:
        this
      • getMessage

        public java.lang.String getMessage()
        Returns:
        the commit message used for the commit
      • setCommitter

        public CommitCommand setCommitter​(PersonIdent committer)
        Sets the committer for this commit. If no committer is explicitly specified because this method is never called or called with null value then the committer will be deduced from config info in repository, with current time.
        Parameters:
        committer - the committer used for the commit
        Returns:
        this
      • setCommitter

        public CommitCommand setCommitter​(java.lang.String name,
                                          java.lang.String email)
        Sets the committer for this commit. If no committer is explicitly specified because this method is never called then the committer will be deduced from config info in repository, with current time.
        Parameters:
        name - the name of the committer used for the commit
        email - the email of the committer used for the commit
        Returns:
        this
      • getCommitter

        public PersonIdent getCommitter()
        Returns:
        the committer used for the commit. If no committer was specified null is returned and the default PersonIdent of this repo is used during execution of the command
      • setAuthor

        public CommitCommand setAuthor​(PersonIdent author)
        Sets the author for this commit. If no author is explicitly specified because this method is never called or called with null value then the author will be set to the committer or to the original author when amending.
        Parameters:
        author - the author used for the commit
        Returns:
        this
      • setAuthor

        public CommitCommand setAuthor​(java.lang.String name,
                                       java.lang.String email)
        Sets the author for this commit. If no author is explicitly specified because this method is never called then the author will be set to the committer or to the original author when amending.
        Parameters:
        name - the name of the author used for the commit
        email - the email of the author used for the commit
        Returns:
        this
      • getAuthor

        public PersonIdent getAuthor()
        Returns:
        the author used for the commit. If no author was specified null is returned and the default PersonIdent of this repo is used during execution of the command
      • setAll

        public CommitCommand setAll​(boolean all)
        If set to true the Commit command automatically stages files that have been modified and deleted, but new files not known by the repository are not affected. This corresponds to the parameter -a on the command line.
        Parameters:
        all -
        Returns:
        this
        Throws:
        JGitInternalException - in case of an illegal combination of arguments/ options
      • setAmend

        public CommitCommand setAmend​(boolean amend)
        Used to amend the tip of the current branch. If set to true, the previous commit will be amended. This is equivalent to --amend on the command line.
        Parameters:
        amend -
        Returns:
        this
      • setOnly

        public CommitCommand setOnly​(java.lang.String only)
        Commit dedicated path only.

        This method can be called several times to add multiple paths. Full file paths are supported as well as directory paths; in the latter case this commits all files/directories below the specified path.

        Parameters:
        only - path to commit (with / as separator)
        Returns:
        this
      • setInsertChangeId

        public CommitCommand setInsertChangeId​(boolean insertChangeId)
        If set to true a change id will be inserted into the commit message An existing change id is not replaced. An initial change id (I000...) will be replaced by the change id.
        Parameters:
        insertChangeId -
        Returns:
        this
      • setReflogComment

        public CommitCommand setReflogComment​(java.lang.String reflogComment)
        Override the message written to the reflog
        Parameters:
        reflogComment -
        Returns:
        this
      • setNoVerify

        public CommitCommand setNoVerify​(boolean noVerify)
        Sets the noVerify option on this commit command.

        Both the pre-commit and commit-msg hooks can block a commit by their return value; setting this option to true will bypass these two hooks.

        Parameters:
        noVerify - Whether this commit should be verified by the pre-commit and commit-msg hooks.
        Returns:
        this
        Since:
        3.7
      • setHookOutputStream

        public CommitCommand setHookOutputStream​(java.io.PrintStream hookStdOut)
        Set the output stream for hook scripts executed by this command. If not set it defaults to System.out.
        Parameters:
        hookStdOut - the output stream for hook scripts executed by this command
        Returns:
        this
        Since:
        3.7