我是git的新手,所以如果我在这里错误地使用了术语,我道歉(并请纠正我),但我会尽我所能。
我正在尝试在一台web服务器上设置一个空的git repo (中心)和一个开发站点的工作副本(prime)。我试着模仿this article来设计它。我希望每当中心存储库被推送到时,开发工作副本都要更新。我的印象是,正确的钩子是post-update,我是这样创建的:
#!/bin/sh
whoami
cd /path/to/working-copy/
RET=`git pull`
echo $RET更新
当我将更改从本地存储库推送到空集线器时,我从更新后脚本获得以下输出:
remote: sites
remote: fatal: Not a git repository: '.'但是,如果我以用户‘站点’的身份通过SSH登录到服务器并手动执行此脚本,那么这个钩子或脚本可能出了什么问题呢?
发布于 2014-09-25 07:22:32
在我的例子中,我指定了一个工作树,这会中断一些命令,比如pull (或者更准确地说,是fetch)。
要取消设置工作树(如果它在您的git配置中),请通过:
git config --unset core.worktree(还有其他方法可以设置工作树)
值得注意的是,
这几乎不会改变你的问题,除非你自己首先使用自定义工作树在你周围挖了这个洞。
笑话:
这对我来说意味着git内部在某些情况下使用相对于工作树+ .git/的路径。根据我的经验,除了git最基本的部分之外,工作树并没有得到很好的支持。我还没有进行彻底的实验,如果我正确地设置了Git directory config变量,git可能会运行,但我还没有尝试过。
https://stackoverflow.com/questions/4043609
复制相似问题