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
.
Setup
A (remote) origin
branch, a local master
one, regularly pull
ed
and push
ed. 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
Finition
git-push origin master
git-branch -D merger
Some bits of work, but a nice occasion to handle some git
commands.