Git:在IDE中打开多个窗口运行同一个项目(或同一个项目的不同分支)——worktree的使用

郎家岭伯爵 2025年10月01日 4次浏览

前言

最近遇到这样一个问题:在代码调试时需要频繁切换运行参数,切换参数后需频繁重新运行代码。因此想找一个可在IDE中打开多个窗口运行同一个项目的方法,还真有这样的方法——Git中的 worktree 可完美解决这个问题。

实现

理论部分

Git 的 工作树(worktree) 是一个强大的功能,它允许我们在同一个 Git 仓库中同时管理多个工作目录(working directories),每个工作目录可以关联不同的分支。这比传统的 git checkout分支切换更高效,尤其适合需要同时处理多个分支的场景。

工作树可以为同一个仓库创建多个工作目录(如 my-project/、my-project-featureA/、my-project-hotfix/),每个目录可以独立关联不同的分支,互不干扰。

实践部分

# 创建新工作树(如果分支已存在)
git worktree add <路径> <分支名>

# 创建新工作树(如果分支不存在,使用 -b 创建新分支)
git worktree add -b <新分支名> <路径> <基分支>

# 查看现有工作树
git worktree list

# 删除工作树(注意不要通过直接删除目录的方式删除工作树)
git worktree remove <路径>

例如我们使用 git worktree add -b new-feature D:\new-feature main 命令,这条命令会基于 main 分支创建新分支 new-feature,同时会在我们指定的路径 D:\new-feature 中创建出 worktree,然后在 IDE 中打开项目,找到刚才我们创建的 worktree。这样我们就可以在 IDE 中打开多个窗口运行同一个项目了。

需要注意的是:

  • 不要手动删除工作树目录,应该用 git worktree remove 清理 Git 记录。
  • 工作树不能嵌套,不能在一个工作树内再创建另一个工作树。

总结

记录下 Git 中 worktree 的使用。