Git工作树修剪 - 它是做什么的?

11

我正在使用 git版本2.14.2.windows.2 并调用命令

git worktree add <newpath> <branch>

在“正常”的代码库上创建一个工作树。这为分支<branch>创建了一个新的工作目录结构,位于<newpath>,并添加了.git/worktrees/<newpath-name>和一些文件。

当调用时

git worktree prune

<newpath>目录下运行git worktree prune没有输出,看起来也没有做任何事情(<newpath><original-dir>/.git/worktrees 目录下的所有文件都被保留了)。根据Git文档所述:

Prune working tree information in $GIT_DIR/worktrees.

这并没有提供太多帮助。实际上,git worktree prune应该做什么? 我的假设是它会移除通过git worktree add添加的工作树,这个假设是错误的吗?

1个回答

17

git worktree prune会删除关于(非锁定的)不再存在的工作树的信息。例如,

$ mkdir a
$ cd a
$ git init
$ git commit --allow-empty --allow-empty-message -m ''
$ git worktree add ../b
$ ls .git/worktrees/
b
$ rm -rf ../b
$ git worktree prune
$ ls .git/worktrees/
$

啊,那么要删除一个工作树,我们只需要删除工作树,然后在工作树的原始仓库上调用 git worktree prune - Thomas S.
1
@ThomasS。实际上,使用Git 2.17+(2018年第二季度),“git worktree remove”就足够了:请参见我的答案 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接