gpt4 book ai didi

用于网站暂存的 Git 接收后 Hook

转载 作者:IT王子 更新时间:2023-10-29 00:39:53 25 4
gpt4 key购买 nike

我正在尝试设置 Git 以暂存我的网站,以便我可以 git pull 使当前版本在本地运行,然后 git push 进行推送对远程服务器的更改。我已经设置好它以我想要的方式工作,但是在我推送之后,我必须手动运行 git checkout -fgit reset --hard HEAD 在远程服务器上。

我试过将它们放入 shell 脚本中作为服务器上的接收后 Hook ,但它似乎没有任何效果。我知道脚本正在运行,因为我在推送后看到“更改已推送到服务器”。这是接收后 Hook :

#!/bin/sh
git reset --hard HEAD
echo "Changes pushed to server."

最佳答案

您问题的答案在这里:http://toroid.org/ams/git-website-howto

简而言之,您要做的是向裸存储库添加一个“分离的工作树”。通常您认为您的工作树包含 .git 目录。根据定义,裸存储库没有工作树,但您可以创建一个,只要它位于与裸存储库不同的目录中即可。

post-receive hook 只是一个简单的git checkout -f,用于将存储库的HEAD 复制到工作目录中。 Apache 将其用作其文档根目录,一切就绪。任何时候您推送到裸存储库,Apache 都会立即开始提供服务。

我通常使用它来自动推送到暂存服务器,以查看“真实”环境是否会因我的更改而呕吐。部署到实时服务器是一个完全不同的故事。 :-)

关于用于网站暂存的 Git 接收后 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838727/

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