*/ class CommitCommand extends Command { /** * Record changes to the repository * * ``` php * $git = new PHPGit\Git(); * $git->clone('https://github.com/kzykhys/PHPGit.git', '/path/to/repo'); * $git->setRepository('/path/to/repo'); * $git->add('README.md'); * $git->commit('Fixes README.md'); * ``` * * ##### Options * * - **all** (_boolean_) Stage files that have been modified and deleted * - **reuse-message** (_string_) Take an existing commit object, and reuse the log message and the authorship information (including the timestamp) when creating the commit * - **squash** (_string_) Construct a commit message for use with rebase --autosquash * - **author** (_string_) Override the commit author * - **date** (_string_) Override the author date used in the commit * - **cleanup** (_string_) Can be one of verbatim, whitespace, strip, and default * - **amend** (_boolean_) Used to amend the tip of the current branch * * @param string $message Use the given <$msg> as the commit message * @param array $options [optional] An array of options {@see CloneCommand::setDefaultOptions} * * @throws GitException * @return bool */ public function __invoke($message, array $options = array()) { $options = $this->resolve($options); $builder = $this->git->getProcessBuilder() ->add('commit') ->add('-m')->add($message); $this->addFlags($builder, $options, array('all', 'amend')); $this->addValues($builder, $options, array('reuse-message', 'squash', 'author', 'date', 'cleanup')); $this->git->run($builder->getProcess()); return true; } /** * {@inheritdoc} * * - **all** (_boolean_) Stage files that have been modified and deleted * - **reuse-message** (_string_) Take an existing commit object, and reuse the log message and the authorship information (including the timestamp) when creating the commit * - **squash** (_string_) Construct a commit message for use with rebase --autosquash * - **author** (_string_) Override the commit author * - **date** (_string_) Override the author date used in the commit * - **cleanup** (_string_) Can be one of verbatim, whitespace, strip, and default * - **amend** (_boolean_) Used to amend the tip of the current branch */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'all' => false, 'reuse-message' => null, 'squash' => null, 'author' => null, 'date' => null, 'cleanup' => null, 'amend' => false )); $resolver->setAllowedValues(array( 'cleanup' => array(null, 'default', 'verbatim', 'whitespace', 'strip') )); } }