git与子模块一起部署

git与子模块一起部署,git,git-submodules,Git,Git Submodules,我一直在研究使用git部署站点的不同方法,并找到了以下教程: 我喜欢本教程中介绍的想法,并希望将其用于我的网站,只是它似乎不支持子模块 无论如何,是否可以对其进行更改,以便子模块也可以根据需要进行拉入和更新 多谢各位 更新 在过去的几个小时里,我一直在研究这个问题,我似乎正在取得进展,但我仍然无法让它工作 我已经切换到本教程:(基本相同,只是一些细微的更改),在遵循这里的一些建议之后:我最终得到了一个如下所示的post-receive文件: #!/bin/sh export GIT_WORK

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

我喜欢本教程中介绍的想法,并希望将其用于我的网站,只是它似乎不支持子模块

无论如何,是否可以对其进行更改,以便子模块也可以根据需要进行拉入和更新

多谢各位

更新

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

我已经切换到本教程:(基本相同,只是一些细微的更改),在遵循这里的一些建议之后:我最终得到了一个如下所示的post-receive文件:

#!/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
理论上这一切似乎都很好,子模块命令似乎正在运行,但我收到了以下错误消息:

远程:子模块“wordpress”(git://github.com/WordPress/WordPress.git)已注册路径“wordpress” 远程:子模块“wp内容/主题/limeblastevolution/inc/cssCrush”(git://github.com/peteboere/css-crush.git)注册路径为“wp content/themes/limeblastevolution/inc/cssCrush” 远程:致命:工作树“/srv/www/limeblast.co.uk/htdocs\u test”已存在。 远程:克隆'git://github.com/WordPress/WordPress.git'进入子模块路径'wordpress'失败


有什么想法吗?谢谢你。

你也许会成功的

但是,如果过于关注Rails,或者由于其他原因而无法或不愿使用它,那么下面介绍如何在提交后挂钩中强制更新子模块:

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

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

谢谢您的帮助。我已经将这一行添加到我的post-receive文件中,但是在最初的上传和签出(这一切似乎都很正常)之后,我收到了与子模块相关的错误消息“remote:您需要从工作树的顶层运行此命令”。有什么想法吗?干杯