如果开发中遇到一个紧急修复需求,你会怎么做?
相信不少人看到这个问题下意识的会回答,使用 git stash 暂时存放当前的代码,然后基于最新的发版分支拉出一个 bugfix 分支进行开发。
有的会选择用 IDEA 全家桶的 shelve changes 功能,有的会选择用 commit 先保存当前工作代码。
这些方式都可以满足需求,但是 git stash 容易忘记 pop,git commit 不够优雅,IDEA 的 shelve changes 软件限定。
今天就介绍一下比较冷门的 git worktree,使用方式很简单。
首先基于你要拉取的分支创建一个新项目目录,
git worktree add your_new_workdir your_need_pull_branch假如我有一个go-hello项目,要基于dev创建 patch新分支就可以这样写
这样我们就在 go-hello项目的同级目录下创建了一个新的项目,然后就可以愉快的在新项目进行平行开发了。
当不用了之后,想要删除掉就输入
这样做优势在哪里?
主要有两个方面,一方面是git worktree add 只会复制真正发生改动的文件,未改动的文件指向的是原先的同一文件,对于大项目来说省下了不少磁盘空间。另一方面避免了在 git stash 后忘记切换或者代码有了冲突的情况