【发布时间】:2011-03-12 15:01:30
【问题描述】:
我在 Ubuntu Linux 下使用 Git 来同步和部署我的项目。
我的本地 Linux 工作机器上有一个存储库,我的服务器上有两个存储库,一个是裸存储库,一个是已部署的应用程序。
它一直运行良好,但现在我为我的其他网站创建了另一个 repo,但出现此错误:
root@vserver5:/var/www/ninethsky# git pull origin master
fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.
所以我必须设置一个GIT_WORKING_TREE ENV-Var,但这究竟是什么,在哪里设置?
这是我的 repo 的 .git/config:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = /home/git/ninethsky/.git
fetch = +refs/heads/*:refs/remotes/origin/*
在我的本地工作机器上有另一个带有bare = true 的仓库和一个仓库。
然后我删除了除了最初的所有 repos,现在我得到了:
root@vserver5:/var/www/ninethsky# git init
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
root@vserver5:/var/www/ninethsky# git init --git-dir=/var/www/ninethsky
error: unknown option `git-dir=/var/www/ninethsky'
我通过取消设置 GIT_WORK_TREE(设置为空白)解决了 git init 问题。
GIT_WORK_TREE 和 GIT_DIR 未设置。 git init 再次工作,git add . 仍然存在问题,当涉及到克隆存储库中的 git 操作时,它被设置为裸露。
谢谢, 乔恩。
【问题讨论】:
-
/var/www/ninethsky是工作目录吗,即/var/www/ninethsky/.git是否存在?还是/var/www/ninethsky本身就是一个 git 目录? -
/var/www/ninethsky/.git存在 -
/var/www/ninethsky中的其他 git 操作是否有效?例如git status也会产生错误吗?当您收到该错误时,您是否设置了任何其他 git 环境变量? (env|egrep GIT) -
@Joern Akkermann:我已经更新了我的答案以回应您的补充意见。
-
仍然缺少的最关键信息是您在环境中设置的内容 -
env|grep GIT显示了什么?
标签: git