接收后挂钩失败“没有工作树就无法使用”

发布于 2024-12-08 04:28:57 字数 540 浏览 4 评论 0原文

我使用此 Git 设置来管理网站: http://toroid.org/ams/git -网站-操作方法

一切正常,直到我激活 post-receive 挂钩。在激活它之前,我可以毫无问题地推拉。但是,如果我激活钩子,它会说:

fatal: /usr/bin/git-checkout cannot be used without a working tree.
error: hooks/post-receive exited with error code 1

它仍然可以正确拉动,但不会按预期复制文件(到网络根目录)。但是 post-receive 钩子上写着:

#!/bin/sh
GIT_WORK_TREE=/home/domains/mydomain/html/ git checkout -f

那么为什么 git 会抱怨没有工作树呢?相同的语法适用于其他网站。

I've used this Git setup for managing a website: http://toroid.org/ams/git-website-howto.

Things work, until I active the post-receive hook. Before activating it, I can push and pull with no problem. However, if I activate the hook, it says:

fatal: /usr/bin/git-checkout cannot be used without a working tree.
error: hooks/post-receive exited with error code 1

It still pulls properly, but does not copy the files as it is supposed to (to the webroot). But the post-receive hook reads:

#!/bin/sh
GIT_WORK_TREE=/home/domains/mydomain/html/ git checkout -f

So why is git complaining about not having a work tree? The same syntax worked for other websites.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨曦÷微暖 2024-12-15 04:28:57

您可能应该使用 git archive 而不是 git checkout 来完成您在此处尝试执行的操作(使用挂钩将文件导出到 Web 服务器的文档根目录) 。

git archive HEAD | tar -xC /home/domains/mydomain/html/

这给您带来的优势之一是能够不从存储库导出某些文件(使用 .gitattributes export-ignore 标志)。

You should probably be using git archive instead of git checkout for what it appears you're trying to do here (having a hook export the files to a web server's document root).

git archive HEAD | tar -xC /home/domains/mydomain/html/

One advantage this gives you is the ability to not export certain files from the repository (using the .gitattributes export-ignore flag).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文