Git worktree(工作树)
worktree 工作树
简介
重新给分支/提交一个新的工作区域,且原工作区无法在switch到那个分支,只有释放了才行
新增一个工作树之后,
- 原仓库目录的.git文件夹中产生一个worktree的文件夹,里面放置着相关的数据,
- 新工作树的目录中没有.git文件夹,而是有一个.git的文件
用法
-
git worktree list [--porcelain]
$ git worktree list
查看工作区$ git worktree list --porcelain
查看更详细的工作区
-
git worktree add [-f|--force] [-c|--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>]
$ git worktree add ../path master
从master分支开出一个树分支$ git worktree add ../path master -b bug_fix
-
git worktree prune [-n] [-v] [--expire <expire>]
- 清理工作树(工作目录人为删除后 使用list命令后,工作树后面会出现prunable字样),
$ git worktree prune
-
git worktree remove [-f] <worktree>
$ git worktree remove ../path
移除树分支$ git worktree remove -f ../path
强制移除树分支
-
git worktree lock [--reason <string>] <worktree>
- 锁定工作树,防治一些外界因素导致git定期清理掉工作树了,比如外置硬盘
$ git worktree lock ../path
-
git worktree unlock <worktree>
$ git worktree unlock ../path
-
git worktree move <worktree> <new-path>
- 移动工作树到新的目录中
-
git worktree repair [<path>...]
- 修复工作树,(如果新工作树中无法正常指向原仓库,可试着在原仓库中执行该命令修复它)
帮助
$ git help worktree