在git中使用worktree同时开发多个branch

在运行程序的过程中,我喜欢用git来管理代码版本。有时候需要尝试加入新的功能,直接新建一个branch,然后在branch中开发,不会影响到master,十分方便。但是新的问题也随之产生了:我的程序常常运行一遍需要好几天,在此期间我显然不应当对当前目录下的代码进行修改,这时候worktree就派上用场了。
worktree是git 2.6之后推出的功能。版本过低可以通过源码进行编译安装来升级。

创建

worktree的使用如下:
git worktree add <path> <branch>:关联一个branch到指定的路径
git worktree add -b <new_branch> <path> <branch>:基于指定branch新建一个branch到指定路径
注意worktree的路径不能与原来的工作目录重叠
在worktree建立完成后,原来branch的代码相当于被clone一份到了指定目录里,可以在主代码仓库像往常一样管理各个branch,但是此时新建branch的工作目录已经是在之前指定的文件夹了。
使用git worktree list可以查看当前的worktree情况。

删除

删除branch所在工作目录,然后在主仓库所在文件夹执行git worktree prune