Git检出失败,附带工作树解除连接。

3

我有一个带有分离式工作树的仓库。通常情况下,如果我需要在仓库上工作,我可以按照以下方式更改配置文件,并使用像git statusgit checkout这样的命令:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        worktree = /var/www/mysite.net/httpd/

#       TO PUSH REPO TO STAGE: change bare=false and uncomment the worktree

现在,我遇到了错误fatal: This operation must be run in a work tree。我有很多这样设置的站点,所以我确信我只是忘了某些东西,但我无法找出原因。有人能想到是什么原因吗?

3个回答

2
通常我使用git级别选项使git像这样工作:
git --work-tree=some/dir --git-dir=some/other/dir push

或者,您可以设置具有相同效果的环境变量。在过去的git版本中,像这样定义的有效活动路径对某些命令有效,而对其他命令无效。
目前,我正在使用git级别选项,因为它们似乎适用于所有命令。
还有一件事,如果您覆盖了工作树,则还需要指定git文件夹。也就是说,您不能只指定一个而不指定另一个。

2

愚蠢的错误。那个工作树应该是针对.com而不是.net。

所以我猜我的答案是通常的 - 仔细检查你的拼写。


哈哈!那么多的打字 :) 无论如何..希望这能帮助其他寻找多种方法来完成这个任务的人 :) - Adam Dymitruk

0
如果我没理解错的话,根本问题在于通过cd进入存储库目录实现的shell脚本无法与分离的工作目录一起使用。(由二进制文件实现的命令在这种情况下可以工作。)为了使脚本命令与分离的工作树一起工作,需要cd到工作树并使用GIT_DIR环境变量告诉Git在哪里查找存储库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接