git subtree split 错误:您需要从工作树的顶层运行此命令

git subtree split 错误:您需要从工作树的顶层运行此命令

我在 /srv/git/mysite.git 有一个 git repo。

Workdir 设置为

/srv/www/mysite

在 git /srv/git/mysite.git/config 中:

[core] repositoryformatversion = 0
filemode = false
bare = false
worktree = /srv/www/mysite

[receive] denyCurrentBranch = updateInstead

我想用子树拆分目录内容:

/srv/www/mysite/mysubsite

分支 mysubsite。

当我执行:

cd /srv/git/mysite.git
git subtree split --prefix=mysubsite -b mysubsite

我收到错误

您需要从工作树的顶层运行此命令。

该帖子似乎包含与我的问题相关的信息: http://git.661346.n2.nabble.com/git-users-Problem-using-detached-worktrees-with-commands-implemented-in-scripts-td7597786.html

我尝试了以下操作:

export GIT_WORK_TREE=/srv/www/mysite

export GIT_DIR=/srv/git/mysite.git

cd /srv/www/mysite

git subtree split --prefix=mysubsite -b mysubsite

我再次收到错误:

您需要从工作树的顶层运行此命令。

我怎样才能解决这个问题?

答案1

最后我在另一个论坛上得到了帮助:https://stackoverflow.com/a/60467173/4523359

解决方案是使用--git-dir工作树路径中的选项:

$ cd /srv/www/mysite
$ git --git-dir=/srv/git/mysite.git subtree split --prefix=mysubsite -b mysubsite

使用此解决方案,分支创建成功!

相关内容