当在git中列出远程标记时,"^{};意味着什么?
当我使用当在git中列出远程标记时,"^{};意味着什么?,git,github,Git,Github,当我使用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 b867af
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^{}
^{}
表示什么(以及我应该关注什么)?您看到的是一个“注释”标记及其指向的commit(^
在本例中表示第一个直接父级)。e、 g.在您的案例中,C742BFAA54140BBBED5BB9202B30CABCB9EB531
是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
投票关闭这个(尽管这是我问的问题)以支持stackoverflow.com/a/15472310/558639它不是第一个父级,而是剥离:^{}
类似于^{commit}
,除非注释标记指向,例如,一个blob,你不会得到错误。
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