I manage my Jekyll blog in a Git repo. My publication process uses 2 branches: master contains all production content, and feature/newposts has the new blog posts, ready to get published, one commit per post. To publish an existing post: I check the to-be-published post in the feature/newposts branch. Then, get the associated commit. And cherry pick it in the master branch. Finally, I push.