# man > debcommit(1)

---
type: CommandReference
command: debcommit
mode: man
section: 1
source: man-pages
---

## Quick Reference

- `debcommit` — commit changes based on `debian/changelog`
- `debcommit --release` — commit and tag a release
- `debcommit -m "message"` — use a custom commit message
- `debcommit --diff` — show diff of what would be committed
- `debcommit --confirm` — display and confirm commit message
- `debcommit --edit` — edit commit message before committing
- `debcommit --all` — commit all files (default for non-git VCS)
- `debcommit -c /path/to/changelog` — use alternate changelog

## Name

`debcommit` — commit changes to a package

## Synopsis

debcommit [options] [--all | files...]
## Options

### General Options

- `-c, --changelog` — specify alternate changelog; default is `debian/changelog`
- `-r, --release` — commit a release; tag the package with version from changelog
- `-R, --release-use-changelog` — derive commit message from uncommitted changelog changes (use with `--release`)
- `-m, --message` — specify commit message
- `-n, --noact` — dry run; print commands without executing
- `-d, --diff` — print diff instead of committing
- `-C, --confirm` — display generated message and ask for confirmation (editable)
- `-e, --edit` — edit commit message in `$EDITOR` before committing
- `-a, --all` — commit all files (default for non-git VCS)
- `-s, --strip-message, --no-strip-message` — strip "* " from changelog-derived message (default: yes, unless multiple lines start with "[*+-] ")
- `--sign-commit, --no-sign-commit` — sign commits with gnupg (supported: git, hg, bzr)
- `--sign-tags, --no-sign-tags` — sign tags with gnupg (supported: git)
- `--changelog-info` — use Maintainer and Date from changelog for commit author/date (useful with `debchange --no-mainttrailer`)

### Configuration Variables

These are set in `/etc/devscripts.conf` or `~/.devscripts` (shell sourced in order). Command-line options override.

- `DEBCOMMIT_STRIP_MESSAGE` — set to `no` to disable stripping (default: `yes`)
- `DEBCOMMIT_SIGN_TAGS` — set to `yes` to enable `--sign-tags` (default: `no`)
- `DEBCOMMIT_SIGN_COMMITS` — set to `yes` to enable `--sign-commit` (default: `no`)
- `DEBCOMMIT_RELEASE_USE_CHANGELOG` — set to `yes` to enable `--release-use-changelog` (default: `no`)
- `DEBSIGN_KEYID` — key ID used for signing tags; default chosen by VCS if unset

### VCS-Specific Features

- **tla / baz** — if message >72 chars, create a summary (first full words ≤72 chars + ellipsis)
- **git** — single change: unfold and strip; multiple changes: first change unfolded as summary line, then full message, then spawn editor
- **hg / darcs** — first change unfolded to single-line summary; multiple changes spawn editor
- **bzr** — if changelog entry closes bugs, `--fixes` options are passed to `bzr commit`

## See Also

- [debchange(1)](http://localhost/phpMan.php/man/debchange/1/markdown)
- [svnpath(1)](http://localhost/phpMan.php/man/svnpath/1/markdown)