课程 14 · 日常工作
标签、注释和发布命名
在检查的主提交处创建带注释的 v0.1.0,并仅将该标签推送到本地源。将标签对象与分支、签名和托管版本区分开来。
- 级别: 中级
- 阅读 2 分钟
- 4 分钟的视频
- 已更新
- 在这节课之前: 推送提交并发布分支
进度已保存在此浏览器中。
播放时会加载来自 YouTube 的视频(隐私增强模式)。
你将学到什么
- 创建一个带注释的标签,其中包含有意的消息。
- 分别验证标签对象和剥离提交。
- 推送一个显式标签而不发布所有标签。
- 保持标签创建与托管版本不同。
开始之前
从第 13 课结束的地方开始:main/H7 clean、服务器主 H7、在 F1 发布的功能;不存在 v0.1.0 标签。明确不要求本地演示标签签名。
该视频是在 Ubuntu 24.04 使用 Git 2.52.0 和 GitTree 2.0 录制的:标签已创建并推送到应用程序中;之前的状态、拒绝的重复名称以及在终端中运行的检查。 macOS 或 Windows 上没有运行任何内容,并且 Ubuntu 是唯一记录的 Linux 系统。 GitTree 的源 Git 版本是 2.39.0。
GitTree 要求您登录;免费计划涵盖了这里的每一步。不需要提供商帐户、专业版/试用版、API 凭证或互联网服务。本地裸源不是 GitLab 或 CI。所有身份均使用 example.com;切勿在源代码检查中运行本课程。
通过 GitTree 或本地路径以相同的输入进行突变,而不是连续进行。只读验证可以遵循其中任何一个。任何被描述为终端工作的准备工作都被标记为本机准备,而不是发明的应用程序功能。
概念和状态效应
分支通常随着提交而前进;发布标签是一个刻意稳定的名称。轻量级标签直接命名一个对象;带注释的标签添加自己的标签对象、标记器和消息。
v0.1.0 在这里命名一个标签对象。 v0.1.0^{} 将其剥离到提交。这两个层的不同对象 ID 是预期的,并不表示两个版本。
注释不是加密签名。发布 Git 标签并不是创建提供商发行说明、上传资产或分发桌面版本。此处不执行任何外部操作。
Create 添加 refs/tags/v0.1.0 加上标签对象;推送会添加所选服务器标签。 HEAD、本地分支、索引和工作文件不会移动。
准备准确的项目状态
在第 13 课后使用原始 main。在创建标签之前检查实际的 H7 SHA 并验证标签是否不存在。标记后请勿添加笔记本提交。
在GitTree
调色板:Command+Shift+P(在 Ubuntu 上为 Ctrl+Shift+P);输入确切命名的命令并选择它。命名引用操作使用该行的上下文菜单,而不是无参数的调色板快捷方式。
- 选择实际的主/H7图行(文档:添加Leo的复习提醒);确认其页脚更改和身份,然后右键单击它。
- 打开 Tag Here 并选择 Create Annotated Tag Here…(该行的菜单还列出了一个普通的 Create Tag Here…,它构成了一个轻量级标记)。该对话框的标题是“在以下位置创建带注释的标签”:提交的短 ID。
- 设置标签名称 v0.1.0 和 Message First 可用的 GitTree 功能课程检查点。
- 在 Signing 下,选项包括遵循 Git 配置、签署此标记和 Don’t sign this tag;该对话框指出 Git 配置不会对标签进行签名(未设置 tag.gpgSign)。对于此明确的未签名课程,选择不签署此标签;不要更改全局签名配置。
- 点击一次创建标签并等待;确认 v0.1.0 标记预期提交而不更改结账。
- 在侧面板的 Tags 组中,右键单击 v0.1.0 → Push Tag(同一菜单还提供“删除标签...”和“从远程删除标签...”,本课程不使用这些功能)。通知上写着“推送标签 v0.1.0”。
- 验证本机标签对象类型、消息和剥离提交以及服务器标签身份;不要将注释与签名混淆。
- 保持 main 干净并且标签不变。不要使用“推送所有标签”或创建提供程序版本。
对于每个普通提交:Summary 是规定的主题;描述为空;修改先前的提交、跳过挂钩、添加签署者、不同的作者、提交后推送以及允许空提交;没有共同作者。仅暂存指定的文件,然后将更改提交到 N 个文件一次(文件为一个),或者使用 Command+Enter 作为替代方案。等待真正的结果。明确修改的课程仅更改所述选项。
在航站楼
clean main 的本机等效项:
git tag --annotate --no-sign v0.1.0 --message "First usable GitTree Features course checkpoint"
git cat-file -t v0.1.0
git for-each-ref --format='%(contents:subject)' refs/tags/v0.1.0
git rev-parse 'v0.1.0^{}'
git push --quiet origin refs/tags/v0.1.0
git ls-remote --tags origin refs/tags/v0.1.0 'refs/tags/v0.1.0^{}'
git status --short--annotate 的缩写形式为 -a (git tag -a v0.1.0 -m "message"),而 --message 为 -m;无论哪种方式,Git 都会使用自己的消息存储标签对象,这与轻量级的 git tag v0.1.0 不同。
创建/推送成功;类型和消息输出:
tag
First usable GitTree Features course checkpoint剥离后的 SHA 等于实际的 main。 ls-remote 返回实际的标记对象和剥离提交 ID;记录这些变量值,而不是模型标签。最终状态为空。单独的重名尝试:
git tag v0.1.0实际 stderr,出口 128:
fatal: tag 'v0.1.0' already exists原来的标签仍然存在;切勿使用 -f 来隐藏冲突。
结果
Where you end: 带注释的 v0.1.0 存在于本地和本地裸源上,消息第一个可用的 GitTree 功能课程检查点,剥离提交 H7。 Main/HEAD/index/work 不变;没有托管发布或签名。
常见错误
- 调用带注释的标签进行签名。
- 标记选定的旧行而不是主行。
- 无意中推送每个本地标签。
如果出现问题
在确认之前取消错误的创建。如果本地标签错误,请检查其实际目标以及在任何显式删除之前是否已发布;本机重复拒绝保留现有引用。
检查你的理解情况
回答每个问题,然后阅读原因。标记为“必填”的问题将有助于完成本课程。
0 个(共 6 个)正确
正确回答所需的问题以完成课程。
在此浏览器中检查。
练习
验证对象类型标记、准确注释、剥离的 SHA=main 和两个服务器标记层。预测重复拒绝,同时保留第一个标签和干净的工作。
您自己的确认:该网站无法看到您的计算机。
要完成本课程,请正确回答所需的问题并确认实践练习。
回顾
- Annotation添加一个标签对象。
- 仅推送所选标签。
- Git 标签和托管版本有所不同。
有关的
术语表介绍
带注释的标签 — ?? ?? ?? ??轻量级标签 — ??标记者 — বানানা剥离提交 — 删除。
视频文字记录
视频的旁白,逐条提示。
显示成绩单
- 从确切的检查点开始。
- 命名分支、索引 和工作版本。
- 仅准备单独的课程副本。
- 在标记之前选择准确的提交。
- 在该提交中创建带注释的标签。
- 写下名称和有意义的注释。
- 注释并不意味着 加密签名。
- 标签不会切换您的分支。
- 仅推送指定的标签。
- 剥离标签以验证其提交。
- 不要发明托管版本。
- 这里的 v0.1.0 是什么?
- 验证的对象类型是 标签并剥离到主目录。
- 哪些主张是合理的?
- 未签名的注释添加 元数据但不移动 HEAD。
- 标记是否会创建另一个主要提交?
- 标签参考/对象点 到现有的提交。
- 不强制重复使用相同的名称:结果?
- 测量的重复尝试 exited128 并保留标签。
- 标签和主 ID 不同:损坏?
- 带注释的标签自己的对象 与其提交目标不同。
- 结果证明什么?
- 读取两个对象层并 实际选择的服务器参考。
- 验证实际结果, 不仅仅是一条消息。
- 在行动之前预测改变的输入。
- 在恢复之前保留有用的工作。
- 在继续之前证明检查点。
- 保留验证结果 以便下一步。