用于部署 git 文件夹的外部 shell
Posted
技术标签:
【中文标题】用于部署 git 文件夹的外部 shell【英文标题】:External shell to deploy a git folder 【发布时间】:2011-11-14 08:19:45 【问题描述】:我在 git 下有“myapp”文件夹。使用了几个分支(master,dev,test,prod,...)。 我想制作一个外部 shell 脚本(不在“myapp”文件夹中的脚本)来将给定的分支部署到 Web 服务器。
如何从外部脚本中选择专用分支?
这个想法是使用类似的东西:
cp -r myapp@dev my_we_folder_path
# myapp@dev beeing the dev branch of myapp folder
很明显,myapp@dev 不是一个正确的 git 表示法,但是 git 中有没有等价的东西?
【问题讨论】:
***.com/questions/4155144/… 可以帮助:接收后挂钩。 @VonC 谢谢,这看起来很棒!我认为这正是我所需要的。你能回答一下吗? 【参考方案1】:如 SO 问题“git post-receive hook to update multiple servers”所示,实现该功能的常用方法是通过类似于this one 的接收后挂钩。
我们的想法是,在新提交时,将您的 git 存储库存档并将其提取/rsync 到您需要部署的位置。 正如“git-archive vs. cp”中提到的,这比 cp 一个所有的 git repo 要好。 这与部署平台上没有任何 VCS 功能的做法是一致的,并且只保留在生产环境中运行程序所需的内容。
【讨论】:
【参考方案2】:您可能想查看我在这里学到的关于将 git 项目安全地部署到远程网络服务器而不将您的 repo 暴露给您的网络服务器的知识:https://***.com/a/18941021/470749
该代码可能会根据您的需要进行修改。
【讨论】:
以上是关于用于部署 git 文件夹的外部 shell的主要内容,如果未能解决你的问题,请参考以下文章