git tag命令如何知道要标记哪个提交?

时间:2014-06-06 23:41:56

标签: git version-control

我是源代码控制和Git的新手。我正在使用一本书,发现很难取得很大进展。请帮我理解Git。

My Book - Git:适合所有人的版本控制。

主题 - Git标记。

步骤 -

首先,CD进入" capuccino"本地系统的回购(由书提供)。

当您想要使用某些元数据标记历史记录中的特定点并使用相同的标记引用它时,标记会派上用场。我们在Git中有两种类型的标签 - 轻量级和注释。

现在,让我们通过执行以下操作在我们的cappuccino存储库中创建一个轻量级标记: git tag edge_v1.1

刚刚发生了什么? 我们已成功创建并将轻量/未注释标记附加到特定提交。我们还学会列出存储库中可用的所有标记,如果需要,还可以查看与任何给定标记关联的粒度级别更改。

我不明白此命令正在标记/标记哪个特定提交。我希望标记命令就像这个伪代码git tag COMMID_ID=XXX edge_v1.1。请解释由于tag命令以及标记真正起作用的原因。

然后这本书说了其他一些东西 -

我们读到了引用带有标记名称而不是提交SHA1 ID的提交。让我们理解这意味着什么。

我们已经学会了git checkout作为历史回溯的功能。如您所知,此进程需要您要访问的提交的SHA1 ID。现在让我们看看它是如何完成的 在处理标签时。在CLI窗口中键入以下命令:

git checkout 2e361b44
git checkout edge_v1.1

我们使用通常的checkout(git checkout SHA1 ID)方法检查了早期提交的提交,但是使用与提交相关联的标记名称返回到最新提交(edge_v1.1) )。

这最后一段是什么意思?

1 个答案:

答案 0 :(得分:3)

git tag edge_v1.1git tag edge_v1.1 HEAD相同 - HEAD表示"当前已检出的提交" (它通常是您当前分支上的最新提交。)

如果您想标记其他一些提交,只需将HEAD替换为提交ID。

关于代码如何工作',您可以在.git/refs/tags目录中找到它们。它们只是指向提交的文件。


git checkout 2e361b44

此命令将从历史记录中获取项目的特定版本,并将其放入工作目录中。例如,如果您想测试程序过去的工作方式,这将非常有用。

git checkout edge_v1.1

这是同一个命令,只是要求Git给你一个不同的版本。

这本书说你可以用第一个命令切换到旧版本,然后用第二个命令切换回当前版本。