并行开发:用Git Worktree改变你的工作流程

1,152 阅读2分钟

什么是Git Worktree?

Git Worktree(工作树)是在Git 2.5中引入的一个特性,它允许你在同一个Git仓库中链接多个工作树。简单来说,它可以让你在单独的目录中拥有代码库的多个副本,每个副本都有自己的分支,同时仍共享同一个底层仓库。这意味着,你可以同时在不同的分支上工作,而无需使用复杂的分支策略或克隆额外的仓库副本。

为什么使用它?

1. 无缝切换分支

Git Worktree 的主要优势之一是轻松切换分支的能力。一般来说,切换分支可能涉及commit或stash更改。通过 Git Worktree,您可以同时拥有多个工作树,无需commit或stash更改即可在分支之间切换,节省宝贵时间,并最大程度减少对工作流程的干扰。

2. 并行开发

Git Worktree 通过为每个任务创建单独的工作树,使开发人员能够同时处理多个功能或错误修复。这种并行开发能力对于从事大型项目的团队特别有益,使开发人员能够隔离自己的更改并进行独立测试,而不会意外影响其他正在进行的工作。每个工作树都可以独立操作,实现在不同任务之间无缝切换。

3. 轻量高效

Git Worktree 提供了一种高效的方式来处理不同分支上的工作,它利用相同的仓库对象,节省磁盘空间,并减少克隆额外仓库副本所需的时间。与维护多个完整的项目副本不同,Git Worktree 共享仓库数据,使得设置更轻量化,既节省资源,也方便开发人员使用

4. 协作和代码审查

当需要对比不同分支的差异时,使用工作树能让团队成员更方便审查代码、提供反馈。

想要自动管理worktree?

如果亲身经历过“添加/删除/修复worktree”的小伙伴应该知道这个过程是有多么的麻烦,尤其是手动输入路径,而且git worktree的命令多而复杂。

为了简化流程,并且提供同时、自动化管理多个仓库worktree的能力。花了一小段时间开发了一个看起来“害挺好用”的命令行工具。

希望大家能够提供宝贵的意见,以及多吐槽一下,好的程序都是通过大家吐槽出来的(啊呸,慢慢打磨)。

npm i -g @kanamara@worktree www.npmjs.com/package/@ka…