On Sun, Jul 16, 2017 at 02:59:23AM +0200, Jan Danielsson wrote: > This seems to accomplish everything I want except that the the "git > push" deletes any branches I have created on my self-hosted > repository. A mirrored push is basically: - push all refs, i.e., a "+refs/*:refs/*" refspec - enable --prune, to delete any branches that don't exist on the local side But you can do those two things separately if you like. So your options are either: 1. Drop the pruning (in which case deleted branches from the sync may accumulate, but depending on the patterns that may or may not be a problem). 2. Use two different namespaces for the synced branches and the private ones (e.g., refs/mirror/* in addition to your branches in refs/heads/*). The obvious downside is that anybody cloning your downstream mirror doesn't pick up refs/mirror unless they configure that refspec explicitly. -Peff