I feel alone with this problem, probably because I missunderstood something the way git works ! So far, the only workaround I see is to use an intermediate local branch to perform the rebase/squash stuff: - branch local/mybranch.local : keep all my (internal) history - branch local/mybranch : will receive a merge from mybranch.local then perform a rebase/squash on it then push it onto my github/mybranh (public repo) - branch github/mybranch: ready to be used for pull request to void-packages. Pierre