使用子模块进行 Git 部署



我一直在研究使用 git 部署站点的不同方法,并找到了以下教程:

http://42pixels.com/blog/quick-and-dirty-git-deployment

我喜欢本教程中提出的想法,并且热衷于将其用于我的网站,只是它似乎不支持子模块。

无论如何,是否可以更改此设置,以便根据需要拉入和更新子模块?

谢谢。

更新

在过去的几个小时里,我一直在研究这个问题,我似乎正在取得进展,但我仍然无法让它工作。

我已经切换到本教程:http://toroid.org/ams/git-website-howto(基本相同,只是略有更改(,并遵循此处的一些建议后: https://stackoverflow.com/a/6636509/1049688 我最终得到了一个如下所示的接收后文件:

#!/bin/sh
export GIT_WORK_TREE=/srv/www/limeblast.co.uk/htdocs_test
export GIT_DIR=/srv/www/limeblast.co.uk/.git
cd $GIT_WORK_TREE
git checkout -f master
git submodule init
git submodule update

从理论上讲,这一切似乎都很好,并且似乎子模块命令正在运行,但是我收到以下错误消息:

remote:子模块"wordpress"(git://github.com/WordPress/WordPress.git(注册为路径"wordpress">remote:子模块 'wp-content/themes/limeblastevolution/inc/cssCrush' (git://github.com/peteboere/css-crush.git( 注册路径 'wp-content/themes/limeblastevolution/inc/cssCrush'远程:致命:工作树'/srv/www/limeblast.co.uk/htdocs_test'已经存在。远程:将"git://github.com/WordPress/WordPress.git"克隆到子模块路径"wordpress"失败

有什么想法吗?谢谢。

你可能在 git 部署方面取得了成功。

但是,如果这过于关注 Rails,或者您由于其他原因不能或不会使用它,以下是在提交后钩子中强制子模块更新的方法:

git submodule init && git submodule sync && git submodule update

您必须在服务器上运行它;因此最好将其添加到hooks/post-receive脚本中。顺便说一下,这是简单的 BASH 或 SH。

最新更新