前言
最近遇到这样一个问题:在代码调试时需要频繁切换运行参数,切换参数后需频繁重新运行代码。因此想找一个可在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
的使用。