在未完成工作旁打开维护分支

GitBeginner
立即练习

介绍

Waymark 发布小巧实用的步行指南。仍受支持的 Harbour Loop 版本,其完整指南链接仍有问题。较新的 Explorer 设计正在开发,而你的 main 工作目录中既有已暂存的工作,也有进一步的未暂存草稿。此外,还有一份私人笔记必须保持私密。

你将先通过正常的快速入门下载确认预期结果。然后在未完成工作旁边的关联工作树中打开现有维护分支,修复其小型链接设置,并验证可用的旧版下载,同时保持原草稿不变。

前置要求是基本的终端目录切换、提交、分支和简单日志/差异阅读。不需要网站编程、托管账号或 Git 服务器。请使用准备好的 Workspace 和 Release Desk 标签页。这是真实的 Git 工作树和 HTTP 预览,运行在一台教学机器上。预览读取指定分支的提交,而非未提交文件;它不是生产部署。路线、身份和指南文字均为合成内容。35 分钟的时长为作者估计。

查看发布版本并打开其工作树

本步骤中,你将确认正常下载的表现,观察损坏的链接,并准确了解哪些未完成工作必须完整保留。

打开 Release Desk。在有两张卡片的概览页上,点击 Open supported release。页面应显示 Harbour Loop、Waymark Pocket Edition 1.0、3.2 km 和 North Pier。这个精简版本仍受支持;它的版本标识和指南内容不应被 Explorer 替代。

点击 Download quick start。从浏览器下载列表中打开 quick-start.txt。其中应标明 Harbour Loop,说明在 North Pier 集合,并提到水和舒适的鞋子。这个正常下载确定了预期结果。

点击 Download full guide。预期会出现写着 Guide not found 的 404 页面。 所选版本在该链接处没有文件;这与无法连接网站不同。点击错误页上的 Back to release。稍后你将检查并修复受版本控制的链接。

在受支持版本页面上点击 All releases,然后点击 Open development preview。页面显示 Waymark Explorer Edition 2.0、Harbour Loop、3.2 km 和 North Pier,并采用新版本的标识和格式。这些设计更改尚未获批,不是受支持版本的要求。使用 All releases 返回。

切换到 Workspace,进入原来的工作目录:

cd /home/labex/project/release-desk/editor

cd 只改变当前终端的目录。如果路径拼错,可使用 pwd 打印当前位置、使用 ls 列出目录内容,然后重新执行上面的完整 cd 命令。普通的目录切换错误不需要重置 VM。

设置仅适用于当前仓库的作者身份。--local 避免改变全局设置;引号将含空格的姓名作为一个整体。这些合成值是可替换的示例。仓库本地配置由该仓库的关联工作树共享,而它们的索引彼此独立:

git config --local user.name "Guide Editor"
git config --local user.email "guides@example.com"

检查状态。--short 打印简洁列表;branch --show-current 打印当前检出的分支:

git status --short
git branch --show-current

预期会看到 MM preview.txt、?? private-note.txt 和分支 main。在两列简洁状态中,第一个 M 表示已暂存的修改,第二个 M 表示工作文件中的进一步修改。?? 表示未跟踪文件。

读取这两项不同的更改。--no-pager 直接打印输出,而不打开可滚动的查看器。--cached 将索引(Git 的暂存区)与当前提交进行对比。不使用它时,diff 将工作文件与索引对比。-- 将选项与后面的文件路径分开:

git --no-pager diff --cached -- preview.txt
git --no-pager diff -- preview.txt

已暂存的新增内容为 Plan: add dusk photographs.。额外的未暂存新增内容为 Draft: try the violet cover.。这两个版本必须分别保留;提交、丢弃或将它们合并为一个状态,都不是本次维护任务。

读取私人笔记,不要修改它。cat 打印文件:

cat private-note.txt

将 Do not publish supplier prices. 保留为未跟踪笔记。通过删除这些工作来让状态看起来干净,并不代表成功。接下来,为维护工作准备独立的目录和索引。

打开独立的维护工作树

本部分中,你将在未完成的 main 工作旁打开现有受支持分支,同时认识分支已经在使用时的一种无害拒绝。

留在 Workspace 中,目录为 /home/labex/project/release-desk/editor。列出本地分支:

git --no-pager branch

当前分支是 main,release/1.0 已存在。关联工作树是附属于同一仓库的另一个工作目录。它共享提交和分支引用,同时拥有自己的检出分支、HEAD 和索引。创建关联工作树不会暂时收起或丢弃 main 目录中的草稿。

先观察一个受保护的情况。以下命令预期会失败,显示 main is already checked out 并返回非零状态。 请单独运行它。.. 表示父目录,因此请求的目录会位于 editor 旁边:

git worktree add ../busy-preview main

Git 拒绝再次打开已经检出的分支。不要添加强制选项。检查现有条目:

git worktree list

它会标明 editor 位于 main。不需要进行修正性重置。现在明确打开另一个现有维护分支:

git worktree add ../supported-v1 release/1.0

这里,../supported-v1 是新的工作目录,release/1.0 是要打开的现有分支。省略分支可能会从错误的起点创建新分支,因此请保留两个参数。

列出两个真实工作树,并进入维护工作树:

git worktree list
cd ../supported-v1
git branch --show-current
git status --short

预期会看到 release/1.0,且没有已更改文件的输出。这个干净的索引与 main 的未完成工作相互独立。关联工作树的 .git 条目通常是一个指向共享仓库元数据的小文件;它不是独立克隆。

读取受支持版本的标识和下载设置:

cat release.txt
cat full-guide.path
ls downloads

版本标识仍为 Pocket Edition 1.0。链接设置是 /downloads/harbour-guid-v1.txt,但实际完整指南文件是 harbour-guide-v1.txt:链接中少了一个 e。保留普通文件、格式及所有无关内容。检查点评估 Git 原生的关联关系及 main 的保留情况,而不只是文件夹是否存在。

修复链接并保留草稿

本步骤中,你将更正一个受版本控制的链接,记录维护提交,测试完整旧版指南,并确认原来已暂存与未暂存的工作仍分别保留。

留在 Workspace 中,目录为 /home/labex/project/release-desk/supported-v1。设置文件包含一个网站绝对路径和换行符。printf 按格式打印值:%s 表示文本,\n 添加换行。单引号保留该格式。> 仅使用打印值替换指定文件。只对这个小型设置文件使用它:

printf '%s\n' '/downloads/harbour-guide-v1.txt' > full-guide.path

暂存前,审阅这一行更正:

git --no-pager diff -- full-guide.path

预期只有 harbour-guid-v1.txt 变为 harbour-guide-v1.txt。暂存该文件并检查已暂存补丁:

git add full-guide.path
git --no-pager diff --cached -- full-guide.path

add 将当前工作树的文件写入当前工作树的索引,不会暂存 main 的草稿。记录更正;-m 直接提供有意义的信息,引号保留其中的空格:

git commit -m "Repair the supported Harbour guide link"

查看维护历史。--oneline 为每个提交显示一行简短信息,--decorate 显示分支/标签标识:

git --no-pager log --oneline --decorate
git status --short

原始受支持提交之上应直接增加一个更正,没有 Explorer 改版提交,且维护工作树干净。预先准备的标签 supported-start 标记原来的维护末端提交,请保持它不变。提交会移动这个受支持分支,而本地预览读取的正是该分支。本场景不涉及远程推送或托管部署。

切换到 Release Desk。点击顶部的 Release Desk 返回概览,然后点击 Open supported release。检查 Pocket Edition 1.0、Harbour Loop、3.2 km 和 North Pier。

受支持版本保留其标识,并提供真实的指南下载。

请查看左侧的 Pocket Edition 1.0 和右侧的两个下载链接;窄屏中,下载面板位于版本详情下方。

点击 Download full guide,从浏览器下载列表中打开实际下载的 harbour-guide-v1.txt。其中必须包含 North Pier 起点、途经 Clock Steps、旧船屋和 Anchor Square 的全部三条编号指引、3.2 km 距离,以及最后关于步道和垃圾的提醒。仅有 200 响应或文件名不足以证明内容完整。

再次点击 Download quick start,确认原来的简短清单仍可使用。从 All releases 打开开发预览,确认 Explorer Edition 2.0 未改变。使用 All releases 返回。

切换到 Workspace,返回原目录:

cd /home/labex/project/release-desk/editor
git branch --show-current
git status --short
git --no-pager diff --cached -- preview.txt
git --no-pager diff -- preview.txt
cat private-note.txt

预期会看到 main、原来的 MM preview.txt 和 ?? private-note.txt、相同的已暂存照片计划句、相同且独立的未暂存紫色封面草稿句,以及未改变的私人笔记。检查点会同时检查修正后的分支、真实下载和这些保留事实。请保持关联工作树可用;移除它不属于交付任务。

总结

你在真实的关联工作树中打开了现有维护分支,认识了分支正在使用时的保护性拒绝,并在不影响原有已暂存与未暂存工作的情况下,修复了一项受支持版本的下载。旧版、两个可用下载和私人笔记均完整保留。

下一个独立初始化的引导实验将复用开发中已有的独立修复,而不是再次编辑它。它会引入 cherry-pick,同时保留相同的分支选择和草稿保留判断。