Today I faced a problem while triggering the delivery pipeline and this article is about the solution to that problem.
Have you ever faced the need to push a commit to a Git branch without changing any files in order to re-run your integration process? If yes then you are landed at the right place, my friend. 😉
TLDR; Create an empty commit
git commit --allow-empty -m “Message”
Problem
For continuous integration, we are using Buddy delivery pipelines which allow us to build, test and deploy applications on a single push to a specific git branch. It helps us to reduce the manual overhead of deploying code to the server and handle all the actions automatically.
But today I faced a problem where I needed to re-run my delivery pipeline of a branch without adding any extra space or changing any files in the repository, so I searched for the solution for a while and It turns out that Git is allowing us to push an empty commit without adding any staged files to the branch, by using one option --allow-empty during git commit.
Enough of the problem, let’s jump on to the solution
Pushing a commit with staged files
git add .
git commit -m "changes on app controller"
git push origin master
The above commands will add all unstaged files and add commit and push the code to the master branch, after that our delivery pipeline will be started.
Once the pipeline process fails or you need to run the process again, you will have to push something to the branch but as I mentioned earlier, we will not make any changes to the files, and even then, We will be able to commit the branch with this command.
Pushing empty commit
git commit --allow-empty -m "rerunning the delivery pipeline"
git push origin master
After the above commands, you can see that the commit has been pushed to your branch and the delivery pipeline will be started.
You learned that you can be able to push an empty commit with the --allow-empty option of git commit. let me know in the comments if there is any other way to do this and don't forget to follow me on Twitter