Thanks, but Johannes has already found the issue and given a solution.
Regardless, replying to the questions just for the note.
On Sun, 2017-08-20 at 04:33 -0400, Jeff King wrote:
> What does "git for-each-ref" say about which branches you _do_ have?
>
> Also, what platform are you on?
>
I use a "Debian GNU/Linux buster/sid 64-bit"
> I'm wondering specifically if you have a filesystem (like HFS+ on MacOS)
> that silently rewrites invalid unicode in filenames we create. That
> would mean your branches are still there, but probably with some funny
> filename like "done/%xxdoc-fix". Git wouldn't know that name because the
> filesystem rewriting happened behinds its back (though I'd think that a
> further open() call would find the same file, so maybe this is barking
> up the wrong tree).
>
That sounds dangerous!
> Another line of thinking: are you sure the � you are writing on the
> command line is identical to the one generated by the corruption (and if
> you cut and paste, is perhaps a generic glyph placed in the buffer by
> your terminal to replace an invalid codepoint, rather than the actual
> bytes)?
>
This was the issue. I wasn't providing git with the actual bytes that
resulted as a consequence of the sloppy script.
> [you didn't say how your script works, so let's use git to rename]
I know of no other way to rename a branch, so I didn't mention it :)
> $ broken=$(printf '\223')
>
> [and we can rename it using that knowledge]
> $ git branch ${broken}doc-fix doc-fix
>
Johannes has already given a solution, this one works too.
--
Kaartic