git - 在 git 中列出远程标签时,“^{}”表示什么?
问题描述
当我git ls-remote --tags
列出远程标签时,我得到如下响应:
45d3d8f01f5e07a0e2728012b3d50989e5971cb2 refs/tags/v1.4.6.7
c742bfaa5d2140bbbed5bb9202b30cabcb9eb531 refs/tags/v1.4.6.7^{}
a745b6d8997803e1af823582885ab17f0dba2d8e refs/tags/v1.4.6.8
b867af5cb9469f6cfc139d355a5e7e4fc9b55a12 refs/tags/v1.4.6.8^{}
这^{}
意味着什么(我应该担心)?
解决方案
您看到的是一个“带注释的”标签和它指向的提交(^
在这种情况下是指第一个直接父级)。例如,在您的情况下c742bfaa5d2140bbbed5bb9202b30cabcb9eb531
是refs/tags/v1.4.6.7
.
这是一个完整的例子:
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest
$ git init
Initialized empty Git repository in D:/dev/git/reftest/.git/
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ touch test
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git add-commit -m "hej"
[master (root-commit) d792079] hej
1 file changed, 1 insertion(+)
create mode 100644 test
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git clone --bare . /d/dev/git/reftest_bare
Cloning into bare repository 'D:/dev/git/reftest_bare'...
done.
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git remote add origin ../reftest_bare/
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git fetch origin
From ../reftest_bare
* [new branch] master -> origin/master
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git tag -a 1.0 -m "test"
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git push
Everything up-to-date
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git push --tags
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 158 bytes | 158.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To ../reftest_bare/
* [new tag] 1.0 -> 1.0
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git ls-remote --tags
From ../reftest_bare/
79d1f428cb16028a2f8b0e0599231eae2ba76b0b refs/tags/1.0
d7920790cb316067be54ec15e4a7d27265c08fc4 refs/tags/1.0^{}
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git show 79d1f428cb16028a2f8b0e0599231eae2ba76b0b
tag 1.0
Tagger: Martin Kjeldsen <>
Date: Thu Oct 8 20:28:14 2020 +0200
test
commit d7920790cb316067be54ec15e4a7d27265c08fc4 (HEAD -> master, tag: 1.0, origin/master)
Author: Martin Kjeldsen <>
Date: Thu Oct 8 20:27:12 2020 +0200
请注意d7920790cb316067be54ec15e4a7d27265c08fc4
标记如何指向提交,1.0
以及根据您的问题它在远程标记列表中的表示方式。如果我只是简单地推送一个轻量级标签,test
它在远程标签列表中是独立的,因为它没有被真正的 git 对象引用。
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git tag test
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git push origin test
Total 0 (delta 0), reused 0 (delta 0)
To ../reftest_bare/
* [new tag] test -> test
zrrbite@ZRRBITE MINGW64 /d/dev/git/reftest (master)
$ git ls-remote --tags
From ../reftest_bare/
79d1f428cb16028a2f8b0e0599231eae2ba76b0b refs/tags/1.0
d7920790cb316067be54ec15e4a7d27265c08fc4 refs/tags/1.0^{}
d7920790cb316067be54ec15e4a7d27265c08fc4 refs/tags/test
推荐阅读
- ios - 我实现了它在初始阶段工作的 iOS 委托方法
- java - Android - Viewmodel 越来越大
- javascript - 无法完美隐藏同位素
- python - 如何从 `Pool.map()` 解压结果?
- r - 无法在 R 中生成核密度估计器的值
- android - 超过100个点的MapboxMapMatching
- jms - Tibco EMS 连接问题
- xcode - Xcode 编译时间:哪种 Mac 配置可提供明显的最佳性能?
- c# - C# 和 Visual Basic 和 VB 代码结构中的代码等效性
- magento - 使用 SSL 在 CentOS 7、Nginx 和 PHP-FPM 上设置 Varnish