The goal is to lump some commits together because they should have been just one. That's the kind of thing that can be done with svk by calling svk push -l.


A (remote) origin branch, a local master one, regularly pulled and pushed. Some commits are in the master branch, and they should be pushed into origin as a single commit. The log diff can be seen by using git-log origin/master..master.

Create a single, equivalent commit

git-checkout -b merger origin/master
git-merge --squash master       # HEAD isn't modified (squash commit),
                                # fast-forward
git-commit -m 'Commit message'
git-log origin/master..merger   # Shows the wanted diff

Apply that diff to master

git-checkout master
git-reset --hard origin/master  # Reset master to origin/master
git-log origin/master..master   # Shows nothing
git-rebase merger master        # Apply the (only) additional commit
                                # from merger to master
git-log origin/master..master   # Shows the wanted diff


git-push origin master
git-branch -D merger

Some bits of work, but a nice occasion to handle some git commands.