Git 工作树
使用独立检出目录处理并行任务,并安全回收工作树。
工作树隔离什么
Git 工作树让同一仓库拥有多个检出目录,每个目录可使用自己的分支或 detached HEAD。Lime 可围绕这些目录组织任务;各工作树的文件修改相互独立,共享仓库历史。
工作树不复制系统环境,也不隔离数据库、网络服务或凭据。并行任务仍需约定端口、外部资源和写入责任。
开始一个任务
- 确认仓库和起点,检查主目录现有改动。
- 创建或选择受管工作树,并说明任务目标。
- 运行适用的本地环境初始化。
- 在工作树中核对路径与状态,再开始实施。
bash
git worktree list
git status --short
git branch --show-current分支与 detached HEAD
分支适合需要长期命名和后续推送的改动;detached HEAD 可用于临时探索。无论使用哪种形式,移除目录前都应检查是否有唯一提交或未保存改动。创建工作树不会自动提交或推送代码。
现有聊天与新聊天
可在工作树中开始新任务,也可从既有上下文继续。检查聊天的工作目录与实际检出一致,不让已有终端继续写入旧目录。聊天派生与 Git 分支派生是不同操作。
初始化与依赖
新检出通常需要重新准备依赖。使用已选择的本地环境脚本,保留锁文件和可复现命令。初始化失败时保留目录诊断,不因失败另建一个工作树掩盖根因。
检查和整合结果
- 检查当前工作树的差异和新增文件。
- 执行任务所需的测试。
- 决定通过合并、挑选提交或其他仓库既有流程整合结果。
- 在目标分支再次验证集成行为。
将补丁或提交整合回主目录可能冲突。先检查双方状态,不覆盖用户已有改动。
列出与删除
Lime 的工作树管理只操作受管根下登记的检出,不接管任意外部目录。删除会核对状态;不提供强制抹除未保存改动的捷径。清理失败时保留登记和错误,便于在原对象上恢复。
回收前保存重要提交和文件,检查相关聊天与后台进程。移除工作树不会撤销外部服务、数据库或远端分支的副作用。
常见问题
| 现象 | 处理 |
|---|---|
| 目录已存在 | 检查它是否为原任务创建的检出,不重复创建。 |
| 分支已被其他工作树占用 | 选择正确目录或另一个允许的分支。 |
| 依赖缺失 | 在当前检出运行相应初始化,确认平台脚本。 |
| 删除失败 | 检查未提交内容、活动任务和 Git 登记,先解决再清理。 |