Last updated on 28th July 2026

Control deployments with commit message commands

When DeployHQ runs an automatic deployment from a push, you can influence how that deployment behaves by adding commands to your commit message. Commands are written inside square brackets and can appear anywhere in the message. They are case-insensitive.

For example:

Fix checkout bug [skip_build]

Deployment behaviour commands

These commands adjust an automatic deployment that is already going to run. They apply on top of your normal automatic deployment settings.

  • [skip_build] -- run the deployment without executing your build pipeline commands.
  • [skip_cache] -- run the build without reusing the previous build cache.
  • [from_scratch] -- deploy every file in the repository rather than only the changes since the last deployment.
  • [config_only] -- deploy only your configuration files, skipping the rest of the project files.

You can combine several commands in one message:

Ship hotfix [from_scratch] [skip_cache]

Triggering a deployment to a specific server

The [deploy: name] command deploys to a server or server group by name, even if that server does not have automatic deployment enabled:

Release to production [deploy: production]

If the name contains spaces, wrap it in quotes:

Release [deploy: "EU Production"]

If more than one server or group shares the same name, every matching one is deployed.

Enabling command deploys for a server

For safety, a server or group will only respond to [deploy: name] when you have explicitly allowed it. On the Automatic Deployments page for your project, turn on the Commit command toggle for each server or group you want to be deployable this way. This is separate from the auto-deploy toggle, so a server can respond to commit commands without deploying on every push.

A server that does not have the Commit command toggle enabled will never be deployed by a commit message, even if it is named.

Where the command is read

Commands are read from the commit message of the revision that was pushed. Make sure the command is part of that commit's message, not an earlier one.