Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置Gitosis:推送正常,但没有真正推送到服务器上_Git_Ssh_Branch_Push_Gitosis - Fatal编程技术网

设置Gitosis:推送正常,但没有真正推送到服务器上

设置Gitosis:推送正常,但没有真正推送到服务器上,git,ssh,branch,push,gitosis,Git,Ssh,Branch,Push,Gitosis,我要和一个队友一起做一个项目,所以我们决定建立一个Git服务器。 我们遵循本教程: 我们在我的计算机上本地创建了一个gitrepo/目录,并在其中进行了git初始化。 然后,我们创建了index.html文件git add index.html和git commit-m First commit 我们使用git remote add origin配置了远程服务器git@SERVER:gitrepo.git,服务器是我们的服务器。git用户到目前为止似乎还可以,SSH密钥也可以 git推送源主服务

我要和一个队友一起做一个项目,所以我们决定建立一个Git服务器。 我们遵循本教程:

我们在我的计算机上本地创建了一个gitrepo/目录,并在其中进行了git初始化。 然后,我们创建了index.html文件git add index.html和git commit-m First commit

我们使用git remote add origin配置了远程服务器git@SERVER:gitrepo.git,服务器是我们的服务器。git用户到目前为止似乎还可以,SSH密钥也可以

git推送源主服务器的输出被替换:

Counting objects: 5, done.
Writing objects: 100% (3/3), 255 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@SERVER:gitrepo.git
   bf6c7a0..283eb49  master -> master
看起来也不错,但当我执行ls/home/git/repositories/gitrepo.git/branchs时,什么都没有。我应该有一个主目录,里面有index.html,对吗


有点不对劲,但我想不出是什么

由于gitosis使用裸回购,答案是否定的。没有分支,没有文件,没有任何错误

您可以在此处阅读有关裸回购的信息:


您可以通过在另一个位置克隆远程回购/从中提取来测试它是否确实有效。

谢谢mnagel。我们解决了这个问题,并设法在post-receive钩子中指定我们的GIT_-WORK_树。它可以工作,但现在我们希望文件处于www数据权限之下。因此,在post receive中,我们得到了sudoers文件中的GIT_WORK_TREE=/data/apache/www/GIT sudo-u www data/usr/bin/GIT checkout-f和GIT ALL=www data ALL。但我们在推送:remote:fatal时出错:此操作必须在工作树中运行。知道为什么吗?可能sudo没有像GIT\u WORK\u TREE=/data/apache/www/GIT这样的环境。尝试创建一个脚本来设置GIT_WORK_树,运行GIT checkout并通过sudo执行这个脚本。是的,我们做到了。但我们在hook/post-receive中进行了回购的git拉取,而不是git签出: