GIT网站Delopyment包含子模块

所以我得到了一个GIT仓库和一些子模块。 现在,我在我的networking服务器上创build了一个“更新后”的挂钩,自动部署我的网站更新。

这就是我的post-update钩子的样子:

#!/bin/sh rm -rf /home/my_user/public_html/my_website/* unset GIT_INDEX_FILE export GIT_WORK_TREE=/home/my_user/public_html/my_website/ export GIT_DIR=/home/my_user/gitrepos/my_website.git git checkout -f 

除了submodules目录没有被导出的事实之外,一切正常工作…这就是我的问题。 我怎样才能部署一个GIT仓库和它的子模块通过后更新钩?

提前致谢!

它应该工作,除了你可以补充,照顾这些submodules:

 git submodule init git submodule update 

另请参见如果有错误消息,请在post钩子上使用git submodule update –init 。

好吧,我做了一个脚本,避免使用非裸仓库和receive.denyCurrentBranch忽略

 #!/bin/sh # DIR VARS DIR_GIT="/home/my_user/gitrepos/my_repo.git" DIR_HTTP="/home/my_user/public_html/my_website" unset GIT_DIR # Recreate HTTP dir rm -rf $DIR_HTTP mkdir $DIR_HTTP # Clone git repository git clone $DIR_GIT $DIR_HTTP # import submodules cd $DIR_HTTP git init --bare $DIR_HTTP git submodule init git submodule update # delete unnecessary git repository in http dir rm -rf $DIR_HTTP/.git 

任何改进都欢迎