Bundle commits / keep commits private on push

git, mercurial

Solution

The idea would be to make your commits on a dedicated branch, but to `git merge --squash` them on `master` (or any other public branch you intent to push), since it will produce one big commit. You would then push `master` on the remote repo.

See "In git, what is the difference between `merge --squash` and `rebase`?"

Problem

I want to keep some commits private on push, so I want that they get bundled into one big commit on the remote side. Locally they should remain splitted. A use case is for example the work on a static blog. The draft steps should be commited and tracked locally but on push I want only publish released versions. A solution in git and/or mercurial will be accepted.

Original source

Related problems