Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Note about tag of tag (tagging a tag), which is at the origin of your issue, as <a href="https://stackoverflow.com/users/19563/charles-bailey">Charles Bailey</a> correctly pointed out in the comment:</p> <p>Make sure you study <a href="http://lists.zerezo.com/git/msg691655.html" rel="nofollow noreferrer">this thread</a>, as overriding a signed tag is not as easy:</p> <ul> <li>if you already pushed a tag, the <a href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html#_on_re_tagging" rel="nofollow noreferrer"><code>git tag</code> man page</a> seriously advised against a simple <code>git tag -f B</code> to replace a tag name "<code>A</code>"</li> <li><p>don't try to recreate a signed tag with <code>git tag -f</code> (see the thread extract below)</p> <p>(it is about a corner case, but quite instructive about tags in general, and it comes from another SO contributor <a href="https://stackoverflow.com/users/46058/jakub-narebski">Jakub Narębski</a>):</p></li> </ul> <blockquote> <p>Please note that the name of tag (heavyweight tag, i.e. tag object) is stored in two places: </p> <ul> <li>in the tag object itself as a contents of 'tag' header (you can see it in output of "<code>git show &lt;tag&gt;</code>" and also in output of "<code>git cat-file -p &lt;tag&gt;</code>", where <code>&lt;tag&gt;</code> is heavyweight tag, e.g. <code>v1.6.3</code> in <code>git.git</code> repository), </li> <li>and also is default name of tag reference (reference in "<code>refs/tags/*</code>" namespace) pointing to a tag object.<br> Note that the tag <em>reference</em> (appropriate reference in the "<code>refs/tags/*</code>" namespace) is purely <strong><em>local</em></strong> matter; what one repository has in '<code>refs/tags/v0.1.3</code>', other can have in '<code>refs/tags/sub/v0.1.3</code>' for example.</li> </ul> <p>So when you create signed tag '<code>A</code>', you have the following situation (assuming that it points at some commit)</p> </blockquote> <pre><code> 35805ce &lt;--- 5b7b4ead &lt;=== refs/tags/A (commit) tag A (tag) </code></pre> <blockquote> <p>Please also note that "<code>git tag -f A A</code>" (notice the absence of options forcing it to be an annotated tag) is a noop - it doesn't change the situation.</p> <p>If you do "<code>git tag -f -s A A</code>": note that you <em>force</em> owerwriting a tag (so git assumes that you know what you are doing), and that one of <code>-s</code> / <code>-a</code> / <code>-m</code> options is used to force annotated tag (creation of tag object), you will get the following situation</p> </blockquote> <pre><code> 35805ce &lt;--- 5b7b4ea &lt;--- ada8ddc &lt;=== refs/tags/A (commit) tag A tag A (tag) (tag) </code></pre> <blockquote> <p>Note also that "<code>git show A</code>" would show the whole chain down to the non-tag object...</p> </blockquote>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload