人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

バージョン管理にgitを使っている方へ質問です。
こんな感じでWebアプリを管理したいと思っています。

? ローカルでgitレポジトリを作ってバージョン管理する
? ローカルでgit commitしたものをリモートレポジトリにpush
? pushした後に、リモートのwebサイトが更新したファイルをpullして同期

ローカルでcommit→リモートpush→webサイトに更新を同期、というサイクルを築きたいです。gitを使ってバージョン管理してwebサービスやアプリをメンテしている方は、どのようにして開発環境と本番環境を同期しているのかが知りたいです。

git利用時のオススメの管理手法や、上記のような仕組みを実現できる方法などをご教示下さい。情報提供お待ちしています。

よろしくお願いいたします。

●質問者: ござ先輩
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:git PUSH Web webサイト Webサービス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● y-kawaz
●200ポイント ベストアンサー

リモートのリポジトリでhooks/post-receiveというファイル名でスクリプトを仕込んでやれば良いです。gitはpushされる度にこのスクリプトを起動してくれます。

例えば↓こんなことがしたいわけですよね。

git push したらサイトを更新するようにした « layer13


リモートリポジトリとWEBサイトが同じサーバで権限の問題もなければこのサイトのようにローカルでコマンドを叩くもよし、WEBサーバが別にあるのであればsshでリモートサーバのコマンドを叩いたりrsyncで公開したりとpushされたときに実行したいコマンドを好きに書いてください何をするかは自由です。

◎質問者からの返答

ほぼベストアンサーに近いです!一応回答期限近くまで待ってみますが。

ありがとうございます!


2 ● a-kuma3
●100ポイント

ぼくも、No.1 の回答がズバリだとは思いますが、敢えて。


ソース管理をするときには、基本的にレポジトリはひとつにしておくべきだと思うんですよ。

開発中資源と、リリース用の資源を考えた場合、開発中資源の過去の状態がリリース用の資源に

なっているはずなので、trunk の head が開発中資源の最新で、

途中のリビジョン (もしくは、head) に「リリース用」というタグが付いてて、

開発環境では head を checkout、リリース環境では、リリース用のタグを指定して checkout という姿が正しいと思います。


たまに、リリース直前で修正を当てなきゃいけないことがありますが、それは branch にしておいて、

その branch にリリースタグを付けて、trunk の方にも、同じ修正を当てておく。


git の push が便利だなあ、と思うのは、開発に携わる面子が広いときです。

例えば、オープンソースのように、開発者が日本だけにとどまらず、各チームで head を持っておきたいとか、

開発規模が大きくて、フレームワークと、○○機能なんかで head を分けて持っておきたいとか。

◎質問者からの返答

回答ありがとうございます。

開発環境ではheadをcheckoutリリース環境では、リリース用のタグを指定してcheckout、僕もローカル環境ではこれに近いことをやっています。リリース用のタグにversionNo打ち込んでるカンジで。

確かにローカルとリモートで2個持たずに、1個に統一したほうが運用はキレイになると思います。考え直します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ