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