繁体   English   中英

Git 钩子:“致命:不是 git 存储库:”

[英]Git hook: "fatal: not a git repository:"

我的设置与我在新服务器上创建的设置类似,所以我知道“原理有效”。 我有一个 Git 后接收,看起来像这样:

#!/bin/sh
git --work-tree="~/public_html" --git-dir="~/repo/website" checkout master -f

我已经检查了十次这些是现有且正确的文件夹:-)

要设置 Git 存储库,我运行了以下命令:

cd ~/repo/website
git init --bare
# Added content to post-receive file
chmod +x hooks/post-receive
# Verified that these permissions are set on the file

我已将一些内容添加(推送)到 repo 以进行测试。 现在,当我尝试使用此命令执行测试命令时:

cd ~/repo/website && bash hooks/post-receive

我收到此错误:

fatal: not a git repository: '~/repo/website'

然后我尝试完全删除回购并从头开始。 但是在第四次尝试时,我开始认为这不是前进的方向;-)

我阅读了相关的 Stackoverflow 线程,可能 HEAD 文件已损坏。 然而,它看起来不错 - 并且已经与其他从头开始的尝试一起重新制作了四次。

出于部署原因,我需要设置工作树等。它可以在其他服务器上使用相同的设置。

我希望有人知道如何解决这个问题。 谢谢!

shell 仅在单词开头时扩展~/ 你有它在一个词的中间。

你应该写

#!/bin/sh
git --work-tree="$HOME/public_html" --git-dir="$HOME/repo/website" checkout -f master

最重要的是,由于~出现在双引号内,因此该字符被视为“引用”,并且无论 shell 是否可以猜测--git-dir=具有某些特殊含义,都将保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM