1

创建新的 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,它将分配标识符为hotfix2。用户是否使用此标识符,例如使用标识符移动到特定工作树或专门删除它?

4

1 回答 1

2

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

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

$ cat .git
gitdir: [...]/git/.git/worktrees/hotfix

既然这是您需要知道的,您可以通过查看.git.

请注意,消息在 Git 版本 2.6.0 中通过提交cd2f471311Enter %s (identifier %s)更改为移动到更高的 Git 版本)。Preparing %s (identifier %s)

于 2017-11-30T16:29:41.653 回答