工具 面试题

共 40 道 工具 面试题。答案默认折叠,便于先自行作答。 1. 你了解 Git 的 Worktree 吗? 难度:3 · 类型:QA 题目要点 Git Worktree 允许多个工作目录共享同一个仓库对象库,从而同时检出多个分支,避免频繁 checkout 带来的上下文切换问题。其核心依赖 Git 的对象数据库与工作区分离设计,相比 clone 具有更低的磁盘与网络成本,适用于并行开发、hotfix、版本对比和 CI 场景,本质是同一仓库的多工作视图机制。 参考答案 Git Worktree 是 Git 提供的一种 在同一个仓库中同时检出多个工作目录(working directory) 的机制,本质目的是解决“一个仓库只能对应一个当前分支”的限制。 在传统 Git 使用方式下,一个仓库目录只能 checkout 一个分支。如果正在开发 feature 分支,此时需要紧急修复线上 bug,就必须经历: stash 当前修改 切换分支 修复问题 再切回原分支恢复现场 这个过程不仅低效,而且容易产生冲突或遗漏。Worktree 的出现,就是为了避免这种上下文切换成本。 一、Worktree 的核心原理 Git 仓库实际上由两部分组成: .git:对象数据库(commit、tree、blob、refs) working directory:当前检出的文件 Worktree 允许 多个 working directory 共享同一个 .git 对象库。 也就是说: commit history 只有一份 objects 只有一份 但可以有多个独立的代码目录,每个目录对应不同分支 Git 内部会在 .git/worktrees/ 下维护额外工作区的元信息,每个 worktree 都拥有自己的 HEAD、index 和 checkout 状态。 ...