接收后的git init

接收后的git init,git,init,git-init,bare,Git,Init,Git Init,Bare,我遇到了一个非常严重的问题。 我希望将本地存储库从我的客户端推送到远程存储库,然后执行post receive脚本复制到webroot。我的post receive中有一段代码,如下所示: cd /home/james/mywebsite git init git pull ssh://git@git.xxx.com/repository/xxx.git cp ./* /usr/local/apache2/htdocs/mywebsite/ ... 但问题是git init命令创建了一个裸存储

我遇到了一个非常严重的问题。 我希望将本地存储库从我的客户端推送到远程存储库,然后执行post receive脚本复制到webroot。我的post receive中有一段代码,如下所示:

cd /home/james/mywebsite
git init
git pull ssh://git@git.xxx.com/repository/xxx.git
cp ./* /usr/local/apache2/htdocs/mywebsite/
...
但问题是git init命令创建了一个裸存储库,其中.git中的文件现在都位于/home/james/mywebsite目录中。这导致我无法使用git pull命令。但我没有使用git init--bare。为什么要创建裸存储库

tisp: 1 mysql git版本是1.7.1。 2我使用git用户创建的存储库,它位于/repository/xxx.git。
请帮帮我…亲爱的all

以前是否已经是git存储库了?如果是,其本地配置是否显示
core.bare=true
?谢谢/home/james/mywebsite以前不是git存储库。在/home/james/mywebsite中创建reporsity时,我输入/home/james/mywebsite,发现配置为“core.bare=true……。其他配置为”。所以我使用“git config--global core.bare false”。但它仍然不起作用。请在
/home/james/mywebsite
中尝试
git config core.bare false
--global
用于全局设置,该设置将被本地设置覆盖。但在git init之前,目录不是一个存储目录目录,因此无法使用git config…..运行
git init
(无选项)不会创建一个空存储库(即使在非常旧的git版本(如1.7.1)中也不行)。还有一些地方出了问题,一些你没有在这里展示的地方。在任何情况下,在post接收脚本中运行
git init
都不是一个好主意。请注意,所有Git钩子通常都运行一个环境变量,
Git\u DIR
,通常设置为
.Git
。(事实上,这可能是最直接的问题:您的脚本可能在
中使用Git目录而不是
.Git
创建了一个非裸克隆。但是稍后,在接收后脚本中运行
Git init
会出现更多问题。)