if err != nil {
                        return nil, err
                }
-               _, err = Run(ctx, r.dir, "git", "fetch", "-f", "--depth=1", r.remote, refspec)
+               // We explicitly set protocol.version=2 for this command to work around
+               // an apparent Git bug introduced in Git 2.21 (commit 61c771),
+               // which causes the handler for protocol version 1 to sometimes miss
+               // tags that point to the requested commit (see https://go.dev/issue/56881).
+               _, err = Run(ctx, r.dir, "git", "fetch", "-f", "-c", "protocol.version=2", "--depth=1", r.remote, refspec)
                release()
 
                if err == nil {