On Wed, Apr 29, 2020 at 10:50:41PM +0300, Sergey Organov wrote:
Taylor Blau <me@xxxxxxxxxxxx> writes:
In my opinion, it is fairly clear that 'git branch -D -' means "delete
the last branch", and not "delete a list of branches from stdin.
Honestly, I'd never guess it'd "delete the last branch". No way.
"-" standing by itself in a command means stdin, stdout, or otherwise a
typo. Using it for any other meaning is a blasphemy. Sure, nobody will
die because of this, but it's /extremely/ confusing!
BTW, what about mistyping:
$ git branch -d - f my_branch
for
$ git branch -d -f my_branch
or some such?
I already knew `git checkout -` and `git switch -` exists and have been
using them quite frequently as my workflow, but when I wanted to go back
to my original branch and delete the branch, I tried `git branch -D -`
quite a few times and I am surprised it does not work as expected.
Yes, that typo would have deleted a branch but it could be restored from
reflog at the very least.
No, it still doesn't look like a good idea to use isolated '-' as
suggested by the patch.
OTOH, for otherwise unusual @{-1}, @{-}, or @- I'd immediately realize I
must consult the manual, so these would be fine with me.
But yes, I didn't know @{-1} or @{-} or @- exists before I was sending
this patch, I only know I can use - which is very simple.