我的回购中有一个master和一个setup分支。我将setup分支作为工作树在主 repo 文件夹中通过
git worktree add ./local/setup
echo '/local' > .gitignore
Run Code Online (Sandbox Code Playgroud)
所以主 repo 文件夹是 on master,local/setup文件夹是 on setup。一切都很好,我可以处理我的setup文件而不必切换分支,我可以从内部提交local/setup等等。
但是,如果我尝试移动整个存储库,或者从不同的 Linux 引导(/home/myrepo变成/mnt/ubu/home/myrepo)访问它,事情就会中断。问题似乎是git's worktree 功能记录了绝对路径,在
myrepo/.git/worktrees/setup/gitdir
myrepo/local/setup/.git
Run Code Online (Sandbox Code Playgroud)
我可以将这些转换为相对路径以使 repo + 嵌入式工作树可重定位吗?我不确定这些文件中的路径应该相对于 什么,但我可以进行试验。这种设置危险吗?