web-dev-qa-db-ja.com

ワークフローにバージョン管理を追加する方法

私はテーマを開発します、それらの多く。私はPSDを与えられ、HTML/CSSをコード化し、コードをWordpressに平手打ちし、そしてそれらがQCされるように修正する。ライブ配信後、クライアントは通常のようにブログ投稿を編集したり、カスタムプラグインを使用して写真をアップロードしたりできます。

テーマやページ/投稿の内容を変更しなければならない場合もあります。つまり、それらをライブにするか、クライアントが承認するためにサイトをダウンロードして開発環境に設定する必要があります。私にはバックアップがなく、バージョン管理もありません。そして、これを変更する必要があることに気付きました。

GitとMercurialが提案されており、これらのツールを利用したいのですが、それらをワークフローにどのように適合させるかについて私は混乱しています。

開発サーバー上のサイトへのすべての変更を要求し、承認されたらそれらをライブにプッシュすることはできますか?ブログ記事を書くのはどうですか? devに投稿して変更を反映させるのはやり過ぎに思えますが、ライブサイトでデータベースを編集した場合はどうすればデータベースを同期できますか?私はインターネットを精査しました。いくつかのガイダンスはいただければ幸いです。

11
cfree

まず、あなたとクライアントの2つのワークフローがあることを認識する必要があります。

あなたのワークフロー

  • PSDを受信
  • コードHTML/CSS
  • コードWordPressテンプレート
  • テーマをライブWordPressサイトにデプロイします

ワークフロー

  • 必要な変更を考案してメールで送信する
  • 投稿を書く
  • 写真をアップロードする

問題

ここでバージョン管理を実装することは、クライアントのワークフローとはまったく関係ありません。 WordPressテーマに使用するcodeを追跡することがすべてです。すべてのテーマファイル、カスタムプラグインなどは、バージョン管理システム(Git、Mercurial、Subversion、または選択したもの)に含まれている必要があります。

ワークフローは次のようになります。

  • コードを書く
  • 変更をバージョン管理システムにコミットする
  • 変更を本番サイトにプッシュする
  • クライアントからコメントを取り戻す
  • コードを書く
  • 変更をコミット
  • コードを書く
  • 変更をコミット
  • 変更を本番サイトにプッシュする

これは、コードのバージョン管理履歴を維持することに関することを忘れないでください。コードは、クライアントが変更してはならないものであり、実稼働中に実稼働サイトのコードをnever変更する必要があります。

ただし、コンテンツ(投稿、写真など)の変更は、バージョン管理システムの範囲外です。つまり、開発に変更を加えずに、データベースを本番環境にプッシュします。それは貧弱な開発慣行です。 devデータベースとprodデータベースを同期させる必要がある場合は、運用ボックスから定期的にバックアップを取得し、そのバックアップからローカルバージョンを復元する必要があります。

コード変更開発から本番へのフロー。
データベースの変更本番から開発へのフロー。

9
EAMann

データベースを同期するソフトウェアを使用できます。しかし、データ自体を http://chronicdb.com のようなものでバージョン管理するオプションもあります。

1
Gary

私はもう一つの質問で 徹底的な答え を書いたところです。私は個人的にはgitを使っていて、それは素晴らしいです。始めるにあたっては、 http://gitref.org/ および http://help.github.com/mac-set-up-git/ をチェックすることをお勧めします。あなたが本のタイプであれば、私は これ - を読んでいます そしてそれは間違いなく22ドルの電子ブック価格に相当します。自分でやらせる、あなたはその決定を後悔しないでください。

1
Matthew Boynes