得到“致命的:不是一个混帐存储库:'。'”当使用后更新钩执行'git拉'在另一个回购
如果我在这里误用术语,我很抱歉(请纠正我),但我会尽我所能。
我试图在Web服务器上build立一个裸Git回购(hub)和一个开发网站工作副本(prime)。  这篇文章之后,我试图devise它。 我希望当推送到中心仓库时更新开发工作副本。 我的印象是,正确的钩子是post-update ,我创build了这样的: 
 #!/bin/sh whoami cd /path/to/working-copy/ RET=`git pull` echo $RET 
更新
当我从本地回购更改到裸集线器时,我从更新后脚本得到以下输出:
 remote: sites remote: fatal: Not a git repository: '.' 
但是,如果我作为用户'网站'SSH进入服务器,并手动执行这个脚本,它是伟大的任何想法,可能会出现这个钩子或脚本错了吗?
 这是最终工作的脚本。 我认为我最初遗漏的一点阻止它远程工作的是未unset GIT_DIR 
 #!/bin/sh cd /path/to/working-copy/ || exit unset GIT_DIR git pull repo branch exec git-update-server-info 
改为:
 #!/bin/sh cd /path/to/working-copy/ env -i git pull 
尽pipe未设置的GIT_DIR正常工作。
当您在其他地方错误地设置GIT_DIR时会出现问题。
你可以添加,而不是:GIT_DIR = .git /它会工作
 在我的情况下,我已经指定了一个工作树,这就打破了一些命令,如pull (或更确切地说, fetch )。 
如果它在你的gitconfiguration中,取消设置工作树是通过:
 git config --unset core.worktree 
(还有其他方法来设置工作树)
重要的是要注意,
除非你自己通过使用自定义工作树在你周围挖这个洞,否则这个问题几乎没有变化。
嘲笑:
 这意味着在某些情况下,git内部使用相对于worktree + .git/path。 根据我的经验,除了git最基本的部分之外,工作树并没有得到很好的支持。 我没有彻底尝试,Git可能会performance如果我设置任何git目录configurationvariables是正确的,我没有玩过。 
 您可能有权限问题。 我不知道你如何设置你的裸git回购,但如果它在git用户下运行,请确保git用户被允许在你的项目目录中执行git pull 。 
可以select这个来找出挂钩运行时你是什么用户:
 echo `whoami`