Git Worktree Cheatsheet (Worktree 速查表)
docs: https://git-scm.com/docs/git-worktree 01 基本用法 git worktree add <path> [<branch>] # 在指定路径创建一个新的工作区,可选地检出指定分支 git worktree list # 列出所有工作区及其状态 git worktree prune # 清理无效的工作区引用 02 工作区管理 git worktree remove <path> # 移除指定的工作区(需要先清理工作区内的未提交更改) git worktree move <source> <destination> # 移动或重命名现有工作区 git worktree lock <path> # 锁定工作区,防止误操作 git worktree unlock <path> # 解锁工作区 03 分支操作 git worktree add -b <new-branch> <path> # 基于当前分支创建新的分支并检出到新工作区 git checkout -b <new-branch> --work-tree=<path> # 在现有工作区中创建并切换到新分支 git branch -D <branch> --work-tree=<path> # 删除指定工作区中的分支(需确保工作区干净) 04 高级使用 git worktree add --detach <path> # 创建一个分离头指针的工作区 git worktree add --no-checkout <path> # 创建工作区但不检出文件 git worktree add -f <path> # 强制创建工作区,即使目标目录非空 git worktree add --track <path> <remote>/<branch> # 克隆远程分支并跟踪 05 最佳实践 使用有意义的路径名称来标识每个工作区的目的。 定期运行 git worktree prune 来清除不再存在的工作区引用。 在多个工作区之间切换时,确保没有未提交的更改。 对于长期存在的特性分支,可以考虑使用独立的工作区。 使用 --detach 创建分离头指针的工作区来进行实验性开发,完成后可以通过创建新分支来保存更改。 在团队环境中使用工作区时,确保团队成员了解工作区的存在,并在共享仓库前解决任何冲突。 如果工作区位于不同的物理位置,使用 --no-checkout 选项以避免不必要的文件复制。 当需要同时处理多个特性或任务时,利用工作区提高效率。 对于大型项目,考虑将不同模块或组件放在不同的工作区中开发。 使用 git worktree lock 和 git worktree unlock 来保护重要工作区免受意外操作的影响。 示例:从当前分支检出新的 worktree,修复 bug,提交,然后清除工作区 ...