我在Ubuntu Linux下使用Git来同步和部署我的项目.
我在我的本地Linux工作机器上有Repo,在我的服务器上有两个repos,一个裸仓库和一个部署应用程序.
它总是工作正常,但现在我为我的其他网站创建了另一个回购,现在我收到此错误:
root@vserver5:/var/www/ninethsky# git pull origin master
fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.
Run Code Online (Sandbox Code Playgroud)
所以我必须设置一个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/*
Run Code Online (Sandbox Code Playgroud)
bare = true在我当地的工作机器上有另一个回购和回购.
然后我删除了所有的回购,但最初的回购,现在我得到:
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'
Run Code Online (Sandbox Code Playgroud)
我git init通过取消设置为空白的GIT_WORK_TREE 解决了这个问题.GIT_WORK_TREE和GIT_DIR未设置.git init再次工作,仍然有一个问题,git add .等等克隆回购中的git动作,它被设置为裸露.
谢谢,乔恩.
Mar*_*air 117
如果你有一个非裸git存储库,它有两个部分:git目录和工作树.工作树包含您已检出的源代码,您可能已做出任何更改.通常调用git目录.git,它位于工作树的顶层 - 这包含项目的所有历史记录,配置设置,分支指针,索引(暂存区域)等.您的git目录包含的文件和目录看起来像这样:
branches description HEAD index logs ORIG_HEAD refs
config FETCH_HEAD hooks info objects packed-refs
Run Code Online (Sandbox Code Playgroud)
虽然我上面描述的是git存储库的默认布局,但您实际上可以将文件系统中的任何目录设置为git目录和工作树.您可以使用--work-tree和--git-dir选项git或使用GIT_DIR和GIT_WORK_TREE环境变量更改这些目录的默认值.但是,通常您不需要设置这些.
您看到的错误来自第一次检查之一git pull- 它必须从工作树运行.我假设这是由于您设置了GIT_DIR或GIT_WORK_TREE环境变量.否则,我最好的猜测是您的.git目录无法以某种方式访问或损坏.如果你列出的内容/var/www/ninethsky/.git,它看起来像我上面引用的列表?所有这些文件和目录都是由您运行命令的用户可读写的,还是他们的权限可能已更改?
更新:在回答您更新问题的其他信息中的要点时:
git init可能因为您仍然设置了GIT_WORK_TREE环境变量而失败,并且如错误消息所示,如果您要指定工作树,则还必须指定git目录.git init --git-dir=/var/www/ninethsky)失败,因为它--git-dir应该在之前init.然而,在这种情况下,你并不需要指定所有的工作树,1所以我想确保你取消设置的GIT_WORK_TREE和GIT_DIR环境变量.
1也就是说,如果您不小心设置了可以访问Web的权限,那么保留您的.git目录可能被认为是个坏主意/var/www,因此这可能是您希望将git目录保存在其他位置的实例 - 但是,因为这些选项显然已经引起了你的困惑,也许最好保持git部分简单并拒绝.git使用其他方法访问目录.
| 归档时间: |
|
| 查看次数: |
64567 次 |
| 最近记录: |