如何从其他文件夹组织部署git

时间:2012-10-05 10:18:01

标签: git apache rsync

我希望我能够很好地解释这个问题:

我有项目文件(路径简化):

/local/projects/example/client
/local/projects/example/server

为了保持客户端和服务器代码同步,我只需在/ projects / example中保留一个git存储库。为此,我不想被Git子模块困扰。

但是,为了1)在本地测试服务器代码,以及2)将服务器代码与实时服务器同步(使用rsync),我还需要将服务器代码保存在我的local / domains文件夹中,该文件夹包含所有内容我的域名:

/local/domains/example.com/
/local/domains/example2.com/
/local/domains/example3.com/

我尝试从示例/服务器到domains / example.com进行符号链接,但Git不遵循符号链接。我尝试过硬链接,但是由于不明原因,它们似乎突然中断,可能是由Git检查旧版本引起的。手动复制脚本真的很麻烦。

我可以在本地测试时将我的本地Apache指向example / server而不是domains / example.com,但是我必须对整个路径进行chmod和chgrp,直到这个服务器看起来不对。

任何人都可以提出一个好的设置

  • 在Git中保持客户端和服务器代码同步
  • 自动保持示例/服务器和域/示例同步

1 个答案:

答案 0 :(得分:0)

您应该可以直接在本地实时Apache根目录(/local/projects/example/server)结帐本地git仓库(/local/domains/example.com/),如“Maintain multiple simultaneously-accessible versions of website remotely using Git”所示,使用后收到钩子。

GIT_DIR=/local/projects/example/server/.git GIT_WORK_TREE=/local/domains/example.com git checkout master -f

您只需要确保调整umask以便Apache使用所检出的文件。 (例如umask 002会将所有文件设置为775