gpt4 book ai didi

Git 钩子(Hook) : "fatal: not a git repository:"

转载 作者:行者123 更新时间:2023-12-02 02:15:42 25 4
gpt4 key购买 nike

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

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

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

为了设置 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

出于测试目的,我已将一些内容添加(推送)到存储库中。现在,当我尝试使用此命令执行测试命令时:

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

我收到这个错误:

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

然后我尝试完全删除存储库并从头开始制作它。但在第 4 次尝试时,我开始认为这不是前进的方向 ;-)

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

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

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

最佳答案

只有当 ~/ 位于单词的开头时,shell 才会展开它。你把它放在一个词的中间。

你应该写

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

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

关于Git 钩子(Hook) : "fatal: not a git repository:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67212201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com