如何通过 WebDAV 部署 git 版本的 Web 应用程序?
我有:
- Mac OS X
- 使用 PHP 等基本 git 知识开发
- Web 应用程序;)
- 具有 WebDav 访问权限的远程托管服务器,
- 可以通过终端和 WebDav 使用本地 git 二进制文件管理服务器文件
我没有:
- git 安装在我的远程服务器上
- ssh 访问我的远程服务器
我现在做什么?
- 在本地开发我的应用程序。
- 使用 WebDav 将远程服务器挂载为卷(远程文件的行为类似于 MacOSX 中的“正常”文件)
- 使用正常的 OSX 功能将我的 Web 应用程序复制并替换(上传)到远程服务器。
我想做什么?
- 使用 git 跟踪我的 Web 应用程序文件(目前 git init、add、commit 效果很好)
- 使用 git 和 WebDav 将我的 Web 应用程序部署(上传)到服务器。
实现这些目标的最佳方法是什么?由于安装了 WebDav 卷,我能够使用终端在远程文件上使用 git 应用程序的本地二进制文件并“cd”到它们。接下来怎么办?我是否在本地存储库上设置“git Remote”,然后将更改推送到服务器?或者反之亦然,我在我的服务器存储库上设置了 git 远程并从本地存储库中提取更改?
我想,例如,我可以在服务器上有两个部署目录,一个用于将稳定分支推送到(公共访问的网站版本),另一个用于测试目的(“不稳定分支”)。如果使用 git 无法正常工作,我可以轻松返回旧版本的网站...
提前感谢您的帮助,我保证我自己尝试找到一个好的解决方案,但没有找到任何可以回答所有问题的东西我的问题。
I have:
- Mac OS X
- web app being developed using PHP, etc
- basic git knowledge ;)
- remote hosting server with WebDav access
- possibility to manage server files using local git binary via Terminal and WebDav
I don't have:
- git installed on my remote server
- ssh access to my remote server
What I do now?
- Develop my app locally.
- Mount remote server as volume using WebDav (remote files behave like "normal" files in MacOSX)
- Copy and replace (upload) my web app to remote server using normal OSX functionality.
What I want to do?
- Track my web app files using git (git init,add,commit works well as for now)
- Deploy (upload) my web app to the server using git and WebDav.
What is the best way to achieve these goals? I am able to use local binary of git app on remote files using Terminal and "cd"-ing to them thanks to the mounted WebDav volume. What's next? Do I set up a "git remote" on my local repo and then push changes to the server? Or maybe vice versa, I set up a git remote on my server repo and pull changes from my local repo?
I imagine that I could for example have two deployment directories on the server, one that I push a stable branch to (public accessed website version) and the other one for testing purposes ("unstable branch"). I could easily return to an older version of website if something doesn't work using git...
Thanks in advance for your help, I promise that I tried to find a good solution myself, but didn't find anything that would answer all my questions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 githooks。它们是在 git 中执行某些操作后执行的小脚本。
例如,如果您希望每次提交一些更改时都将存储库上传到 webdab 文件夹,您可以使用
cp -fr /your_git_dir/* /your_webdav_dir/
添加提交钩子You can huse githooks. They are small scripts that are executed after some actions in git.
For instance, if you want to upload your repository to the webdab folder everytime you commit some changes, you can add a hook on commit with
cp -fr /your_git_dir/* /your_webdav_dir/