什么是git工作树标识符

什么是git工作树标识符,git,git-worktree,Git,Git Worktree,当创建一个新的git工作树时,它会显示如下消息 $ git worktree add -b hotfix ../hotfix origin/master Enter ../hotfix (identifier hotfix) Branch hotfix set up to track remote branch master from origin. Switched to a new branch 'hotfix' $ cd ../hotfix 在这里,标识符的用途是什么?我观察到,如果我在

当创建一个新的git工作树时,它会显示如下消息

$ git worktree add -b hotfix ../hotfix origin/master
Enter ../hotfix (identifier hotfix)
Branch hotfix set up to track remote branch master from origin.
Switched to a new branch 'hotfix'
$ cd ../hotfix
在这里,标识符的用途是什么?我观察到,如果我在不同路径上创建另一个工作树,但文件夹名称相同,如
。/abc/hotfix
,它会将标识符分配为
hotfix 2
。用户是否可以使用此标识符来移动到特定的工作树或删除它?

此处打印的“标识符”只是内部名称的最后一部分(
sb_repo.buf
)。在正常情况下,它对普通用户没有实际意义,但它是
.git/worktrees
中包含指定工作树的管理文件的子目录的唯一名称如果手动重命名工作树(更改其路径),则必须更新其中一个管理文件。这在中进行了描述

虽然这个标识符是在创建工作树时打印的,但很有可能,如果您确实移动了一个添加的工作树,那么您在添加它之后很长时间就会这样做,并且忘记了标识符,所以在我看来,消息本身现在是无用的(即,它在开发过程中可能对开发人员有用,但现在只是剩余的垃圾)。管理文件的路径直接位于添加的工作树中的
.git
文件中:

$ cat .git
gitdir: [...]/git/.git/worktrees/hotfix
因为这是您需要知道的,您可以通过查看
.git
找到它

请注意,在Git版本2.6.0中,消息已通过从
输入%s(标识符%s)
更改为
准备%s(标识符%s)
,因此这意味着您正在运行Git 2.5.x,它有一些小错误和添加的工作树(不是大错误,但我建议移动到更高的Git版本)