[英]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.