Hi,
I ran into this issue a few weeks ago. I'm using Git 2.55.0, which is the latest released.
`git help check-ref-format` says this about a branch name:
[...] 9. They cannot be the single character @. [...]
And as expected, it is rejected:
$ git check-ref-format @ && echo BUG! $
However, the following commands all create a branch named @ :
$ git checkout -b @ $ git switch -c @ $ git branch @
I believe this to be a bug. Other invalid names are properly rejected though:
$ git checkout -b master@{1}
fatal: 'master@{1}' is not a valid branch name
hint: See 'git help check-ref-format'
hint: Disable this message with "git config set advice.refSyntax false"
$ git checkout -b @{1}
fatal: '@{1}' is not a valid branch name
hint: See 'git help check-ref-format'
hint: Disable this message with "git config set advice.refSyntax false"
$ git checkout -b @^
fatal: '@^' is not a valid branch name
hint: See 'git help check-ref-format'
hint: Disable this message with "git config set advice.refSyntax false"After creation, this branch cannot be checked out again, as `git checkout @` is a no-op. Luckily though, `git branch -d @` works, so I didn't permanently damage my Git repo :P
Bence
P.S. as I was typing this mail, I realized that I should've given `--branch` to check-ref-format, and sure enough, there's the problem:
$ git check-ref-format --branch @
@
$ git check-ref-format --branch @{1}
fatal: '@{1}' is not a valid branch name
$Not sure why it thinks that would be a valid branch name... IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.