Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git在哪里存储标签?_Git_Tags - Fatal编程技术网

Git在哪里存储标签?

Git在哪里存储标签?,git,tags,Git,Tags,Git在哪里存储标签?我执行: $ git tag v0.1.0 v0.10.0 v0.11.0 但是目录.git/refs/tags是空的。Git在哪里存储这些标签 谢谢。它们也可以存储在.git/packed refs中,而wnoise是正确的,因为他认为git也在中存储标记。git/packed refs操作之后,在“pack”点之间(意思是git gc操作之间),git创建未打包的提交对象和未打包的标记: derek@derek-OptiPlex-960:~/Projects/test

Git在哪里存储标签?我执行:

$ git tag
v0.1.0
v0.10.0
v0.11.0
但是目录
.git/refs/tags
是空的。Git在哪里存储这些标签


谢谢。

它们也可以存储在
.git/packed refs

中,而wnoise是正确的,因为他认为git也在
中存储标记。git/packed refs
操作之后,在“pack”点之间(意思是
git gc
操作之间),git创建未打包的提交对象和未打包的标记:

derek@derek-OptiPlex-960:~/Projects/test$ git tag
1
2
3
derek@derek-OptiPlex-960:~/Projects/test$ cat .git/packed-refs 
# pack-refs with: peeled 
55a87ab06897aca29285e58beb4e0de15af409fa refs/heads/master
89a6b171ee6d56bc3ce5a4cbd92c6a379594d974 refs/tags/1
55a87ab06897aca29285e58beb4e0de15af409fa refs/tags/2
derek@derek-OptiPlex-960:~/Projects/test$ ls .git/refs/tags
3
derek@derek-OptiPlex-960:~/Projects/test$

Git从哪里得到标签。。。听起来像是绕口令!是的,你说得对。在运行
git-gc--aggressive--prune
之后,我看到我之前创建的一个标记从
.git/refs/tags
中消失了,但出现在
.git/packed refs
中。请注意,
.git/packed refs
是一个文件,而不是目录,因此您必须
cat.git/packed refs
才能查看标记。事实上,这是它们最终存储的唯一位置。它们是由git gc打包的,从来没有解包过,因为它们从不改变。事实上,如果你想做些什么来满足你的好奇心,最好的检查方法是通过
git-tag
git-for-each-ref[refs/tags]
,而不是直接查看.git目录。Jefromi,标签是通过
git-gc
打包的,而是在“打包”点之间,git创建未打包的提交对象和未打包的标记。另请参见命令。请参见官方文档页面中的命令: