私はGitの周りを包み込み、ウェブサイトをデプロイする(あるいはデプロイしない)ようにしています。私はグーグルで検索して読んでいますが、私の特定のケースや懸念に対する答えを見つけることはできません。私はまだこれを行う計画段階にありますが、最初からすぐにそれを取得し、私のために働くワークフローを見つけたいと思います。GitリポジトリからPHPウェブサイトをデプロイ
www.example.comでライブウェブサイトを実行し、dev.example.comで開発版を実行するリモートVPSを持っています(それらは/ var/wwwにあります)。/example/htdocs /と/ var/www/example/subdomains/dev /)を指定します。
開発は/opt/git/example.git/の裸のリポジトリから実行されます。裸のレポにはマスターと開発の支店があります。私と他の開発者の両方は、ローカルマシン上にこのリポジトリのクローンを持っています。私たちは開発拠点から引き抜いてそこから作業します。 dev.example.comには開発ブランチの最新のコードがあり、適切にテストされればmasterにマージし、タグを追加してexample.com(基本的にはgit flow)を更新します。
私がGit IRCチャンネルで見つけた最初のアプローチは、リポジトリを更新するためにフックを使用していますが、これは非常に除外され、時には望ましくなく、私はプッシュ後に自分自身でコマンドを実行したい、 。別のコマンド(またはシェルスクリプト)は、開発がマージされた後に、ライブサイトをマスターブランチから更新します。私もカピストラーノを見つけましたが、それは今の私の頭の中に少ししかないようです。
読んでいるうちに、リモートサイトに2つのクローンを作成することを提案している多くの人が見つかりました.1つはライブサイト用で、もう1つは開発サイト用で、必要に応じて分岐します。これにより、バージョン管理ファイルもWeb経由でアクセスできるようになります。これは私が望まないものです。理想的には、gitファイルやフォルダを使わずに「クリーン」なコピーを作成したい。
私はgitアーカイブを使用したアプローチも見つけましたが、裸のリポジトリからgitアーカイブを実行すると、masterブランチのみをアーカイブすることができます。 /opt/git/example.git/にあるgit archive --format=tar HEAD | (cd /var/www/example/htdocs/ && tar xf -)
というコマンドを使ってこれを行います。
私はgit archive
のアプローチが私に最も近い答えをもたらすように感じますが、私はGit知識の欠如によって制限されています。 HEADの代わりにブランチを使用するようにコマンドを変更できますか(HEADの代わりにorigin/masterを使用しようとしたときにエラーが発生しました)。正しい方向に私を向けることができる人はいますか?
私はこれを5回upvoteできますか?だからシンプルなのでとてもシンプルです。 – Bram
Heheheありがとう:) – ralphtheninja
最終的にこれを受け入れる前に最後の質問:.gitignoreファイルを削除することは可能ですか? – Bram