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からdomains/example.comへのシンボリックリンクを試しましたが、Gitはシンボリックリンクをたどりません。ハードリンクを試しましたが、Gitが古いバージョンをチェックアウトしたことが原因である可能性があり、不明な理由で突然壊れたようです。また、手動のコピースクリプトは非常に面倒です。

ローカルでテストするときに、domains/example.comではなくexample/serverをローカルのApacheにポイントすることもできますが、このサーバーまでのパス3全体に対してchmodとchgrpを実行する必要があります。これは正しくないようです。

誰もがする良いセットアップを思い付くことができますか

  • Gitでクライアントとサーバーのコードの同期を維持する
  • example/serverとdomains/exampleを自動的に同期させます
4

1 に答える 1

0

/local/projects/example/serverローカルのライブ Apache ルート ディレクトリ ( /local/domains/example.com/) でローカルgitリポジトリ ( ) を直接チェックアウトできるはずです。

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

umaskApacheがチェックアウトされたファイルを操作できるようにするには、必ず調整する必要があります。(たとえばumask 002、すべてのファイルを に設定します775)

于 2012-10-05T11:34:48.977 に答える