1

我希望我已经设法很好地解释了这个问题:

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

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

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

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

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

我尝试了从 example/server 到 domain/example.com 的符号链接,但 Git 不遵循符号链接。我尝试了硬链接,但它们似乎由于未知原因突然中断,可能是由于 Git 检查旧版本所致。手动复制脚本真的很麻烦。

在本地测试时,我可以将我的本地 Apache 指向 example/server 而不是 domain/example.com,但是我必须对整个路径执行 chmod 和 chgrp 直到这台服务器,这似乎不正确。

谁能想出一个好的设置

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

1 回答 1

0

/local/projects/example/server您应该能够直接在本地实时 Apache 根目录 ( )中签出本地 git 存储库 ( /local/domains/example.com/),如“使用 Git 远程维护多个同时可访问的网站版本”中,使用接收后挂钩。

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

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

于 2012-10-05T11:34:48.977 回答