[译]Git Worktree使用说明
本文翻译自Git Worktree
我们或许会面临这样的情形:正在开发某个功能时一个bug出现并且需要及时修复、处于一个耗时的构建过程中突然需要在另外一个分支做快速修复、发现了一个不相关的bug想在不污染当前分支的前提下修复。不论哪种情况,通常我们都想再次clone
一个仓库到本地,然而Git
已经提供了对应的工具。
这就是worktree
,通过它我们可在不必多次clone
的前提下通过不同的分支创建不同的工作空间。
可通过git worktree add ../my_second_worktree the_other_branch
来创建一个新的worktree
,该指令会生成一个名为my_second_worktree
的新文件夹并使用``the_other_branch分支中的代码,之后可在里面独立运行并使用各种常规的
git`指令。
可通过下述指令来快速查看创建的所有worktree
$ git worktree list
/Users/charlesfeval/git/my_repo bd502b1 [user/chfeval/240614_that_feature]
/Users/charlesfeval/git/my_repo--other_worktree 15d0988 [user/chfeval/240616_fix_versionin]
/Users/charlesfeval/git/my_repo--bugfix_2 9c26708 [user/chfeval/240617_fix_rockin]
如果已经用worktree
完成了相关操作,可使用类似 git worktree remove ../my_second_worktree
来删除。
下面是官方文档上关于该指令的说明
usage: git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]]
[-b <new-branch>] <path> [<commit-ish>]
or: git worktree list [-v | --porcelain [-z]]
or: git worktree lock [--reason <string>] <worktree>
or: git worktree move <worktree> <new-path>
or: git worktree prune [-n] [-v] [--expire <expire>]
or: git worktree remove [-f] <worktree>
or: git worktree repair [<path>...]
or: git worktree unlock <worktree>