Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> writes: > To be sure, I tried: > > echo ee0f5eeeae36cd1b5a346a1e2ae5c8cb841cd5da > .git/refs/heads/broken > > where the sha1 is the one of a blob. > ... After doing (something like) the above, running "git push --mirror" to various Git repositories shows their slightly different behaviour. The most intriguing one was github.com:gitster/git.git repository. To github.com:gitster/git.git ! [remote rejected] jk/transfer-limit-protocol -> jk/transfer-limit-protocol (failed) ! [remote rejected] ls/p4-lfs -> ls/p4-lfs (failed) ... ! [remote rejected] pu -> pu (failed) ! [remote rejected] broken -> broken (failed) ! [remote rejected] jc/fsck-dropped-errors -> jc/fsck-dropped-errors (failed) ! [remote rejected] kn/for-each-branch -> kn/for-each-branch (failed) After removing the broken branch, retrying "git push --mirror github.com:gitster/git.git" was successful. I didn't dig further (it didn't reproduce with a pair of toy local repositories). It is puzzling that it is behaving as if I am trying to perform an atomic push and rejection of "broken" is causing everything else to be rejected or something like that. Perhaps GitHub has a pre-receive hook to reject such nonsense? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html