git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Simple git push --tags deleted all branches

From
Mateusz Loskot <mateusz@loskot.net>
Date
Nov 28, 2018, 16:50 UTC
Message-ID
<CABUeae-e33Jc4s4MezjhpVsEJ_0sO8QZ1mpa1z_79ZGuQWM-Xw@mail.gmail.com>
Hi,
(using git version 2.19.2.windows.1)
I've just encountered one of those WTH moments.
I have a bare repository
core.git (BARE:master) $ git branch
  1.0
  2.0
* master

core.git (BARE:master) $ git tag 1.0.1651 1.0.766 2.0.1103 2.0.1200

I published the repo using: git push --all --follow-tags

This succeeded, but there seem to be no tags pushed, just branches. So, I followed with

core.git (BARE:master) $ git push --tags
To XXX
 - [deleted]               1.0
 - [deleted]               2.0
 ! [remote rejected]       master (refusing to delete the current
branch: refs/heads/master)
error: failed to push some refs to 'XXX'

And, I've found out that all branches and tags have been wiped in both, local repo and remote :)

I restored the repo and tried out

git push origin 1.0 git push origin --tags

and this time both succeeded, without wiping out any refs.
Could anyone help me to understand why remote-less
git push --tags
is/was so dangerous and unforgiving?!
Best regards,
-- 
Mateusz Loskot, http://mateusz.loskot.net
Next: Mateusz Loskot
Message 1 of 6 in “Simple git push --tags deleted all branches”
  1. Mateusz LoskotNov 28, 2018
  2. Mateusz LoskotNov 28, 2018
  3. Ævar Arnfjörð BjarmasonNov 29, 2018
  4. Mateusz LoskotNov 29, 2018
  5. Ævar Arnfjörð BjarmasonNov 29, 2018
  6. Mateusz LoskotDec 4, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.