[[!comment format=mdwn username="http://joey.kitenet.net/" nickname="joey" subject="comment 3" date="2011-12-10T19:43:04Z" content=""" Git can actually push into a non-bare repository, so long as the branch you change there is not a checked out one. Pushing into `remotes/$foo/master` and `remotes/$foo/git-annex` would work, however determining the value that the repository expects for `$foo` is something git cannot do on its own. And of course you'd still have to `git merge remotes/$foo/master` to get the changes. Yes, you still keep the non-bare repos as remotes when adding a bare repository, so git-annex knows how to get to them. I've made `git annex sync` run the simple script above. Perhaps it can later be improved to sync all repositories. """]]