2012-05-11 42 views
6

我一直在寻找到部署使用Git网站不同的方式,发现下面的教程:git的部署与子模块

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

我喜欢在这个教程中提出的意见,并会热衷于将它用于我的网站,只是它似乎不支持子模块。

无论如何,这是可以改变的,以便子模块也被拉入并根据需要进行更新?

谢谢。

UPDATE

我一直对这个问题的最后几个小时,我似乎取得进展,但我仍然不能得到它的工作。

我切换到本教程: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 

这一切似乎在理论上很好,并且它会出现子模块的命令运行,但我发现了以下错误消息后面:

远程:子模块“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' remote:fatal:working tree'/srv/www/limeblast.co.uk/htdocs_test'already exists。 远程:无性系 '混帐://github.com/WordPress/WordPress.git' 成子模块路径“WordPress的失败

任何想法?谢谢。

回答

6

您可能已成功使用git-deploy

但如果是过分专注于Rails的,或者如果你不能或不会使用其他别的原因,这里是如何给力的子模块更新在提交后钩:

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

你必须在服务器上运行它;所以可能最好将它添加到您的hooks/post-receive脚本中。这是简单的BASH或SH,依靠它。

+2

谢谢你的帮助。我已经将该行添加到我的post-receive文件中,但是在初始上传和结帐(这似乎工作正常)后,我收到错误消息“remote:您需要从工作树的顶层运行此命令。 “关于子模块的东西。有任何想法吗?干杯。 –