从 git 存储库中将文件拉入 Web 目录
Pull files into web dir from git repo
我看过很多关于这个的页面和 post,但没有一个适用于我的 Digital Ocean droplet。
我有一个使用 Capist运行o 部署的实时 rails 应用程序,这意味着我必须在部署之前使用 Git 将其推送到服务器。所以 Git 有效。
然而,现在我想通过一些更改来更新站点,而远程仓库是最新的(通过 git log
验证),网络目录不是最新的。
我知道我需要将新文件传送到该目录,但是如何?
hooks/post-receive:
#!/bin/sh
git checkout -f
纳达。
我还 运行 sudo ./post-receive
,只是为了确保 post-receive 挂钩已执行(是的,它是可执行的)。无输出。只是另一个 CLI 提示符。
为什么获取包含最新 git 推送的文件夹如此困难?
您缺少 unset GIT_DIR
行,假设您的挂钩位于 myrepo.git/hooks
中的裸存储库(没有签出文件的存储库)中
#!/bin/sh
unset GIT_DIR
cd /path/to/checkout/repository
git pull
git checkout -f
取消设置将确保 Git 将您签出的存储库视为当前存储库(而不是裸存储库)
我看过很多关于这个的页面和 post,但没有一个适用于我的 Digital Ocean droplet。
我有一个使用 Capist运行o 部署的实时 rails 应用程序,这意味着我必须在部署之前使用 Git 将其推送到服务器。所以 Git 有效。
然而,现在我想通过一些更改来更新站点,而远程仓库是最新的(通过 git log
验证),网络目录不是最新的。
我知道我需要将新文件传送到该目录,但是如何?
hooks/post-receive:
#!/bin/sh
git checkout -f
纳达。
我还 运行 sudo ./post-receive
,只是为了确保 post-receive 挂钩已执行(是的,它是可执行的)。无输出。只是另一个 CLI 提示符。
为什么获取包含最新 git 推送的文件夹如此困难?
您缺少 unset GIT_DIR
行,假设您的挂钩位于 myrepo.git/hooks
#!/bin/sh
unset GIT_DIR
cd /path/to/checkout/repository
git pull
git checkout -f
取消设置将确保 Git 将您签出的存储库视为当前存储库(而不是裸存储库)