# Restore annotated tag?

4 messages from 2010-09-22 to 2010-09-22. Participants: skillzero@gmail.com, Shawn O. Pearce.
Thread: https://gitlist.dev/t/25200

## skillzero@gmail.com, 2010-09-22 18:14

Subject: Restore annotated tag?
Message-ID: <AANLkTinafiikD0Lzgw2gw1ti2pCK6cSTk5bQZFcCRJnS@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTinafiikD0Lzgw2gw1ti2pCK6cSTk5bQZFcCRJnS%40mail.gmail.com

```
Is there a way to restore an annotated tag? One was accidentally
deleted and pushed. I can restore normal tags by just using git tag
again, but for an annotated tag, there's a tag object and I'm not sure
how to restore it.

```

## Shawn O. Pearce, 2010-09-22 18:23

Subject: Re: Restore annotated tag?
Message-ID: <20100922182353.GO32601@spearce.org>
URL: https://gitlist.dev/e/20100922182353.GO32601%40spearce.org
In-Reply-To: <AANLkTinafiikD0Lzgw2gw1ti2pCK6cSTk5bQZFcCRJnS@mail.gmail.com>

```
skillzero@gmail.com wrote:
> Is there a way to restore an annotated tag? One was accidentally
> deleted and pushed. I can restore normal tags by just using git tag
> again, but for an annotated tag, there's a tag object and I'm not sure
> how to restore it.

If the tag still exists, `git fsck --unreachable | grep tag` should
show you output listing the dangling tag objects.  Once you have that
list, use `git show SHA1` to view the object.  When you find the tag,
make a reference to it with `git update-ref refs/tags/NAME SHA1`.

-- 
Shawn.

```

## skillzero@gmail.com, 2010-09-22 18:38

Subject: Re: Restore annotated tag?
Message-ID: <AANLkTingnVMsRp8+r5-D=c-7mxfaMY1V06YXT2FQzAoL@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTingnVMsRp8%2Br5-D%3Dc-7mxfaMY1V06YXT2FQzAoL%40mail.gmail.com
In-Reply-To: <20100922182353.GO32601@spearce.org>

```
On Wed, Sep 22, 2010 at 11:23 AM, Shawn O. Pearce <spearce@spearce.org> wrote:
> skillzero@gmail.com wrote:
>> Is there a way to restore an annotated tag? One was accidentally
>> deleted and pushed. I can restore normal tags by just using git tag
>> again, but for an annotated tag, there's a tag object and I'm not sure
>> how to restore it.
>
> If the tag still exists, `git fsck --unreachable | grep tag` should
> show you output listing the dangling tag objects.  Once you have that
> list, use `git show SHA1` to view the object.  When you find the tag,
> make a reference to it with `git update-ref refs/tags/NAME SHA1`.

Thanks, that worked.

One thing I noticed that I wasn't sure about is that I SSH'd into the
server and ran git update-ref to restore the tag. That created the
symbolic name in .git/refs/tags/NAME to point to that tag object. But
what I noticed is that the only file listed in .git/refs/tags is the
tag I restored. There are other tags in the repository (and a fresh
clone gets them), but they don't show up in that directory. Is it
going to be a problem that ran git update-ref on the server (which is
a bare repository) rather than on a clone that I push? I just want to
make sure that the tag objects are referenced so they don't go away
after the 2 week garbage collection grace period.

```

## Shawn O. Pearce, 2010-09-22 18:39

Subject: Re: Restore annotated tag?
Message-ID: <20100922183917.GP32601@spearce.org>
URL: https://gitlist.dev/e/20100922183917.GP32601%40spearce.org
In-Reply-To: <AANLkTingnVMsRp8+r5-D=c-7mxfaMY1V06YXT2FQzAoL@mail.gmail.com>

```
skillzero@gmail.com wrote:
> 
> One thing I noticed that I wasn't sure about is that I SSH'd into the
> server and ran git update-ref to restore the tag. That created the
> symbolic name in .git/refs/tags/NAME to point to that tag object. But
> what I noticed is that the only file listed in .git/refs/tags is the
> tag I restored. There are other tags in the repository (and a fresh
> clone gets them), but they don't show up in that directory.

The other tags are in the .git/packed-refs file.

> Is it
> going to be a problem that ran git update-ref on the server (which is
> a bare repository) rather than on a clone that I push?

No.

-- 
Shawn.

```
