标签是独立的实体吗?
Are tags independent entities?
我想知道标签到底存储在哪里。
在线文档告诉我只需 git tag -a <version> -m <message>
但在那之后我应该做什么?标记是否会在历史记录中创建特定点,例如提交?或者在我提交之前,标签是否存储在暂存区?或者标签是否将自己添加到最后一次提交?我找不到答案。
标签只是指向提交的标签(在这个意义上它类似于分支名称,尽管标签指向固定的提交而不是自动推进)。它不是提交的一部分。创建标签后,真的没什么可做的"after that"。您现在可以使用该标记来引用该特定提交,这样您就可以执行一些操作,例如查看自该标记以来的所有更改:
git diff mytag
或者您可以根据该标签创建一个新分支:
git checkout -b newbranch mytag
关于您的第一个问题 ("where exactly is a tag stored?"),答案是 (a) 在 .git/refs/tags
目录中,或 (b) 在 .git/packed-refs 文件中。
我想知道标签到底存储在哪里。
在线文档告诉我只需 git tag -a <version> -m <message>
但在那之后我应该做什么?标记是否会在历史记录中创建特定点,例如提交?或者在我提交之前,标签是否存储在暂存区?或者标签是否将自己添加到最后一次提交?我找不到答案。
标签只是指向提交的标签(在这个意义上它类似于分支名称,尽管标签指向固定的提交而不是自动推进)。它不是提交的一部分。创建标签后,真的没什么可做的"after that"。您现在可以使用该标记来引用该特定提交,这样您就可以执行一些操作,例如查看自该标记以来的所有更改:
git diff mytag
或者您可以根据该标签创建一个新分支:
git checkout -b newbranch mytag
关于您的第一个问题 ("where exactly is a tag stored?"),答案是 (a) 在 .git/refs/tags
目录中,或 (b) 在 .git/packed-refs 文件中。