Git Worktree使用

worktree 的意思是工作树,同一个仓库可以对应多个 worktree 、分支。

应用

可以再多个分支同时工作并且不影响,如果遇到一套代码要对应多个产品的情况,那么 worktree 将会是很好的解决方案

命令

# 添加工作树
# 如果不提供分支名称,将基于当前分支创建新的分支;如果提供 -b 则检出指定的分支
git worktree add <path> -b <branch>

# 列出工作树
git worktree list

# 移除工作树
git worktree remove <path>

# 清理工作目录
git worktree prune

# 切换到已有工作树的目录
cd <path>

与分支管理对比优劣

特性使用 git worktree使用分支切换

并行性

可以同时拥有多个工作树,独立进行多任务开发

只能在一个工作树中进行,需频繁切换

灵活性

适合同时处理多个特性、修复和测试

切换较快速,但不利于并发开发

环境隔离

每个工作树之间的文件和分支独立,互不影响

基于同一工作树,文件可能被覆盖

复杂性

需要管理多个工作树,可能增加操作复杂度

较为简单,适合一般工作流程

资源占用

每个工作树占用磁盘空间

占用空间小,所有代码共享同一目录

版本控制

可以快速拉取和切换不同版本的代码

通过分支跟踪不同版本,容易混淆

参考

Last updated