2016-12-20 8 views
1

私がgitのドキュメントを読むと、裸のリポジトリは共有に適しており、非裸のリポジトリは開発に適しています。
私は、SCM、Jenkins、およびいくつかの手動テストを行うためのWebページを提供する開発サーバーをセットアップしています。
私はGOGSを使って開発者の間で共有する裸のリポジトリを作成します。これらの裸のreposは何とかapacheフォルダ(通常は/var/www/http/)の非裸のreposにハードリンクされ、裸のレポのすべての変更を自動的に模倣する必要があります。ウェブ開発サーバのミラーリポジトリ

可能ですか?

+0

はい、bash(5分ごとにcronジョブで実行)スクリプトを作成し、特定のブランチをローカルApacheのフォルダ( 'git clone/path/to/your/local/bare/repo')にクローンします。 – C1sc0

+0

リポジトリ全体のクローニングが考えられましたが、かなり効率が悪いようですが、gitを使用する理由の1つは、トラフィックとデータの移動を最小限に抑えることです。 –

+0

git hookを使って特定のイベントが発生したときにクローンをトリガーすることができます – C1sc0

答えて

1

私はこれらの裸のレポは何とかあるApacheのフォルダ(通常は/var/www/http/

上の非裸のレポへのハードリンクを取得することを必要とする、裸のレポを作成しGOGSは、開発者の間で共有するために使用SCMを提供GOGSによって管理されているあなたの裸のレポのポスト受信フックセットで一般的に行われます。
このスクリプトは次のようになります。いずれかが、それらの裸のレポにプッシュ

git --git-dir=/path/to/project_root/.git --work-tree=/var/www/http/ checkout -f 

コミットあなたのウェブサイトに表示されます。

1

ノンベアレポを作成するには、git cloneの希望の場所に裸のレポ。

脇に、展開に使用されているのと同じ場所での開発はお勧めしません。それは最終的には本当に望ましくない方法であなたを制約します。代わりに、Webサーバーに展開する必要のある項目が含まれているtgzまたはzipファイルである、「デプロイメントバンドル」を作成する小さなスクリプトを作成します。

関連する問題