git worktree add <worktree-name> 无法在裸 git 存储库中创建工作树?致命:无法将索引文件重置为修订版“HEAD”

问题描述 投票:0回答:1

我创建了一个裸 git 存储库,如下所示

cd E:\repos
git init --bare foo.git
cd foo.git
git remote add origin <repository-url>/foo

然后我添加了一个

master
工作树并将其链接到远程
master
分支

git worktree add master
cd master
git fetch origin master
git branch --track master origin/master

dev/joseville/rem
是远程仓库中存在的一个分支,我尝试为其创建一个工作树

git worktree add dev/joseville/rem

但出现以下错误

Preparing worktree (new branch 'rem')
error: unable to create file <path-to-file>: Filename too long
... (40 of this same error in total)
error: unable to create file <path-to-file>: Filename too long
Updating files: 100% (82960/82960), done.
fatal: Could not reset index file to revision 'HEAD'.

我尝试

cd
进入其中

cd dev
cd joseville
cd rem

但是

rem
不存在——出现此错误(在 PowerShell 中)

Set-Location: Cannot find path 'E:\repos\foo.git\dev\joseville\rem' because it does not exist.

相比之下,

dev/joseville/nonrem
是远程仓库中不存在的分支,我能够为其创建一个工作树

cd E:\repos\foo.git
git worktree add dev/joseville/nonrem

并得到以下输出

Preparing worktree (new branch 'nonrem')
Updating files: 100% (82960/82960), done.
HEAD is now at 0652479dc11 <commit-msg>

能够

cd
进入其中

cd dev
cd joseville
cd nonrem

ls E:\repos\foo.git\refs\heads
显示

master
nonrem
rem

当我期待的时候

dev/joseville/nonrem
dev/joseville/rem
master

ls E:\repos\foo.git\worktrees
显示

master
nonrem

当我期待的时候

dev/joseville/nonrem
dev/joseville/rem
master

PS E:\repos\foo.git> git branch
显示

* master
+ nonrem
  rem

当我期待的时候

  dev/joseville/nonrem
  dev/joseville/rem
* master

ls E:\repos\foo.git
表明它包含
dev
master
。它不包含
rem
也不包含
nonrem

git git-branch git-bare git-worktree
1个回答
0
投票

你修好了吗?我也遇到同样的问题=(

© www.soinside.com 2019 - 2024. All rights reserved.