From: Sergei Organov Date: Wed, 21 May 2014 10:35:46 GMT Subject: Slight inconsistency between ref delete commands. Message-ID: <871tvn5shp.fsf@osv.gnss.ru> Hello, Was writing conversion script from CVS to git for my repo and noticed slight inconsistency in git-tag, git-branch, and git-update-ref behavior: $ git --version git version 1.9.3 $ git tag -d && echo success success $ git branch -d && echo success fatal: branch name required $ git update-ref -d && echo success usage: git update-ref [options] -d [] or: git update-ref [options] [] or: git update-ref [options] --stdin [-z] -m reason of the update -d delete the reference --no-deref update not the one it points to -z stdin has NUL-terminated arguments --stdin read updates from stdin Noticed when used xargs without -r switch, like this: git for-each-ref --format="%(refname)" "refs/tags/*-merge" | xargs -n 1 git update-ref -d -- Sergey.