创建新的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
。用户是否使用此标识符,例如使用标识符移动到特定工作树或专门删除它?
答案 0 :(得分:2)
此处打印的“标识符”只是内部名称的最后一部分(sb_repo.buf
)。在正常情况下,它对普通用户没有实际意义,但它是.git/worktrees
中包含指定工作树的管理文件的子目录的唯一名称。 如果手动重命名工作树(更改其路径),则必须更新其中一个管理文件。这在DETAILS section of the git worktree
documentation。
虽然在创建工作树时打印了此标识符,但如果您执行移动添加的工作树,则很可能在添加工作树后执行此操作,并且忘记了标识符,所以在我看来,消息本身现在没用了(也就是说,它在开发过程中可能对开发人员有用,但现在只是剩下的垃圾)。管理文件的路径直接位于添加的工作树中的.git
文件中:
$ cat .git
gitdir: [...]/git/.git/worktrees/hotfix
因为这是你需要知道的,你可以通过查看.git
找到它。
请注意,Git版本2.6.0中的消息已从Enter %s (identifier %s)
更改为Preparing %s (identifier %s)
,通过commit cd2f471311,因此这意味着您运行的是Git 2.5.x,它有一些小的添加了工作树的bug(不是很大的,但我建议转到后来的Git版本)。