# commits/commitlint-pushed

> Checks the message of each commit in a push. A manual run covers every commit from the upstream merge base to HEAD.

Checks the message of each commit in a push. A manual run covers every commit from the upstream merge base to HEAD.

Part of the [`commits`](/reference/configurations/commits/) configuration, at the `all` [level](/start/concepts/#levels). It runs at the `push` [stage](/start/concepts/#stage), once for pushed history. It runs commitlint.

## Why

A message written past the hook (`--no-verify`, a rebase, or a merge) still reaches the shared branch unless the push checks it.

## What to do

Reword the commits that fail with `git rebase -i`, or change the rule with `gspot set tools.commitlint.rules`.

## Example

A commit with the message `changed stuff` in the push fails. Reword it as `fix(cli): report missing configuration`, and coordinate first when others share that history.

## Turn it off

Turn it off for some files, with a reason:

```shell
gspot ignore commits/commitlint-pushed --paths "<glob>" --reason "<why>"
```
