Occasionally you see commit messages like:
trigger build
empty commit for CI
Developers push these commits to re-run continuous integration (CI) after a failure due to a flaky test or an intermittent network error. The commits often contain an innocuous change such as adding a blank line in a README file or changing one character in a code comment.
The problem
The developer doesn’t actually want to change anything in the project—they want
to trigger a new build. But, by default, the git commit
command prevents
creating empty commits:
$ git commit
On branch my-feature
nothing to commit, working tree clean
Empty Git commits
To avoid changing the project, specify the --allow-empty
option when
committing:
$ git commit --allow-empty -m "Empty commit"
[my-feature 5e1cb99] Empty commit
This allows the developer to push a truly empty commit to trigger the build.
Alternatives
Although pushing an empty commit to trigger a build accomplishes the goal, there’s often a better way. For example, GitHub Actions supports re-running workflows and jobs from the UI.