On Thu, 29 Nov 2018 at 16:03, Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: > On Wed, Nov 28 2018, Mateusz Loskot wrote: > > > > (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?! > > Since nobody's replied yet, I can't see what's going on here from the > info you've provided. My guess is that you have something "mirror" set > on the remote. Thank you for responding. The git push --tags hugely surprised me, and here is genuine screenshot https://twitter.com/mloskot/status/1068072285846859776 > It seems you can't share the repo or its URL, but could you share the > scrubbed output of 'git config -l --show-origin' when run inside this > repository? Here is complete output. I have not stripped the basics like aliases, just in case. ``` core-external-metadata.git (BARE:master) $ git config -l --show-origin file:"C:\\ProgramData/Git/config" core.symlinks=false file:"C:\\ProgramData/Git/config" core.autocrlf=true file:"C:\\ProgramData/Git/config" color.diff=auto file:"C:\\ProgramData/Git/config" color.status=auto file:"C:\\ProgramData/Git/config" color.branch=auto file:"C:\\ProgramData/Git/config" color.interactive=true file:"C:\\ProgramData/Git/config" help.format=html file:"C:\\ProgramData/Git/config" http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt file:"C:\\ProgramData/Git/config" diff.astextplain.textconv=astextplain file:"C:\\ProgramData/Git/config" rebase.autosquash=true file:C:/Program Files/Git/mingw64/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt file:C:/Program Files/Git/mingw64/etc/gitconfig http.sslbackend=openssl file:C:/Program Files/Git/mingw64/etc/gitconfig diff.astextplain.textconv=astextplain file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.smudge=git-lfs smudge -- %f file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.process=git-lfs filter-process file:C:/Program Files/Git/mingw64/etc/gitconfig filter.lfs.required=true file:C:/Program Files/Git/mingw64/etc/gitconfig credential.helper=manager file:C:/Users/mateuszl/.gitconfig user.name=Mateusz Łoskot file:C:/Users/mateuszl/.gitconfig user.email=mateusz@xxxxxxxxxx file:C:/Users/mateuszl/.gitconfig github.user=mloskot file:C:/Users/mateuszl/.gitconfig core.editor=vim file:C:/Users/mateuszl/.gitconfig color.branch=auto file:C:/Users/mateuszl/.gitconfig color.diff=auto file:C:/Users/mateuszl/.gitconfig color.status=auto file:C:/Users/mateuszl/.gitconfig color.ui=auto file:C:/Users/mateuszl/.gitconfig alias.br=branch file:C:/Users/mateuszl/.gitconfig alias.bv=branch -vv file:C:/Users/mateuszl/.gitconfig alias.brv=branch -vv file:C:/Users/mateuszl/.gitconfig alias.bra=branch -a file:C:/Users/mateuszl/.gitconfig alias.ci=commit --verbose file:C:/Users/mateuszl/.gitconfig alias.cia=commit --verbose --amend file:C:/Users/mateuszl/.gitconfig alias.ciae=commit --verbose --amend --no-edit file:C:/Users/mateuszl/.gitconfig alias.co=checkout file:C:/Users/mateuszl/.gitconfig alias.dc=diff --cached file:C:/Users/mateuszl/.gitconfig alias.df=diff file:C:/Users/mateuszl/.gitconfig alias.gf=flow file:C:/Users/mateuszl/.gitconfig alias.lg=log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit file:C:/Users/mateuszl/.gitconfig alias.lol=log --graph --decorate --pretty=oneline --abbrev-commit file:C:/Users/mateuszl/.gitconfig alias.lola=log --graph --decorate --pretty=oneline --abbrev-commit --all file:C:/Users/mateuszl/.gitconfig alias.ls=ls-files file:C:/Users/mateuszl/.gitconfig alias.lst=lfs status file:C:/Users/mateuszl/.gitconfig alias.rt=remote file:C:/Users/mateuszl/.gitconfig alias.rtv=remote -v file:C:/Users/mateuszl/.gitconfig alias.st=status file:C:/Users/mateuszl/.gitconfig alias.ghclm=!sh -c 'git log $1...$2 --pretty=format:"* [view](http://github.com/$3/$4/commit/%H) - %s"' - file:C:/Users/mateuszl/.gitconfig alias.ign=ls-files -o -i --exclude-standard file:C:/Users/mateuszl/.gitconfig alias.prune-branches-origin=!git remote prune origin && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs -r git branch -D file:C:/Users/mateuszl/.gitconfig alias.prune-branches-mloskot=!git remote prune mloskot && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs -r git branch -D file:C:/Users/mateuszl/.gitconfig alias.hist=log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short file:C:/Users/mateuszl/.gitconfig commit.template=~/.gitmessage file:C:/Users/mateuszl/.gitconfig credential.helper=manager file:C:/Users/mateuszl/.gitconfig filter.lfs.clean=git-lfs clean -- %f file:C:/Users/mateuszl/.gitconfig filter.lfs.smudge=git-lfs smudge --skip -- %f file:C:/Users/mateuszl/.gitconfig filter.lfs.process=git-lfs filter-process --skip file:C:/Users/mateuszl/.gitconfig filter.lfs.required=true file:config core.repositoryformatversion=0 file:config core.filemode=false file:config core.bare=true file:config core.symlinks=false file:config core.ignorecase=true file:config remote.origin.url=https://xxx.com/core-external-metadata.git file:config remote.origin.fetch=+refs/*:refs/* file:config remote.origin.mirror=true file:config lfs.https://xxx.com/core-external-metadata.git/info/lfs.access=basic ``` Best regards, -- Mateusz Loskot, http://mateusz.loskot.net