Re: Restore annotated tag?
- From
- skillzero@gmail.com <skillzero@gmail.com>
- Date
- Sep 22, 2010, 18:38 UTC
- Message-ID
- <AANLkTingnVMsRp8+r5-D=c-7mxfaMY1V06YXT2FQzAoL@mail.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:
Show 10 quoted lines
> 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.