git stash 与 git worktree 切换分支方式
type
status
date
slug
summary
tags
category
icon
password
如果开发中遇到一个紧急修复需求,你会怎么做?
相信不少人看到这个问题下意识的会回答,使用 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 后忘记切换或者代码有了冲突的情况