# `committed` Reference
## Specifying commits
Without any commits specified, `committed` will detect if something is being
piped in on `stdin` and use that, otherwise it will check `HEAD`.
### Commits
```bash
committed HEAD
```
### Commit Ranges
```bash
committed master..HEAD
```
- The range excludes the start commit
- This will Do The Right Thing even when `master` is ahead of when you
branched. `committed` will look for the merge-base between the range end
points.
### Commit Files and `stdin`
This is useful for editor integration:
```bash
committed --commit-file <path>
# Or for stdin
committed --commit-file -
```
- This will not run all verification checks, like looking for merge commits.
## Configuration
### Sources
Configuration is read from the following (in precedence order)
- Command line arguments
- Either
- File specified via `--config PATH`
- `$GIT/committed.toml`
### Config Fields
| subject_length | \- | number | Number of columns the subject can occupy |
| line_length | \- | number | Number of columns any line can occupy, including subject |
| subject_capitalized | \- | bool | Whether the subject is required to be capitalized |
| subject_not_punctuated | \- | bool | Prevent the subject from ending in punctuation |
| imperative_subject | \- | bool | Require the subject to start with an imperative verb |
| no_fixup | \- | bool | Disallow fixup commits |
| no_wip | \- | bool | Disallow WIP commits |
| style | \- | none, [conventional] | Commit style convention |
| merge_commit | --no-merge-commit | \- | Disallow merge commits. Argument is recommended over config file since there are times when merge-commits are wanted. |
[conventional]: https://www.conventionalcommits.org/