Gitを使用したWordpress


21

インターネットで検索しましたが、正しい解決策が見つからないため、この質問をしています。実際、私は複数の開発者がお互いの作業を混乱させることなく単一のワードプレスプロジェクトで作業できるソリューションが必要ですが、ワードプレスでは、プラグインがアクティブであるかどうかなどのすべてのものがデータベースに保持されていることがわかります。

開発者が互いに通信する方法よりもローカルプロジェクトにプラグインをインストールする場合、すべての人がその特定のプラグインなどをインストールする必要があり、すべての開発者がコードをプッシュ/プルすると他のサイトのサイトが壊れる可能性があります。

データベースも共有する必要があります。プラグイン/テーマの設定を共有して、開発者間で競合が発生しないようにします。

ありがとう


5
wp-cli.orgは、あなたのワークフローにかなり役立ちます。
jgraup

1
可能であれば、jekyllなどに切り替えます。
イェンスシャウダー

ジキルはgithubに焼き付けられます。これは明らかにgitでうまく機能します
...-DaveRGP

Gitのようなものを使用する場合、FWIW、コリジョン、コンフリクトは完全には削除されません。それらを「マージ」する準備ができるまで、コンフリクトを邪魔にならないようにするだけです。

1
すべての開発者は、公的にホストされている共通のDBを共有し、バージョン管理のためにGITにコミットできますか?
MonkeyZeus

回答:


18

プラグインのGit

次に、Gitを使用composer.jsonしてTGMプラグインの管理と変更を行います。

最も難しいのは、データベースを同期することです:

間違いなく、データベースを共有する必要があります。プラグインの設定/オプションを再構成することはお勧めできません。

役立つ無料プラグインとプレミアムプラグインの両方があります。

手動で何かを試してみたい場合は、@ Wyck の答えwp-cliを組み込みます。


8

私のチームも同様の問題に直面しました。gitを使用して、プラグインや作成するテーマなどの独自のカスタムコードをバージョン管理します。Composerを使用して、作成しなかったプラグインなどの依存関係を管理します。composer.jsonファイルとcomposer.lockファイルをgitにチェックインして、全員の同期を保ちます。各開発者はgit masterブランチをプルcomposer updateし、プレイペンで頻繁に実行することで、全員が最新の状態を保つことが期待されています。

データベースでは、開発者は主に構成に関心があり、WP-CLIを使用して構成の同期を保つことがよくあります。たとえば、WP-CLIコマンドを実行してホストごとにプラグインを有効または無効にするシェルスクリプトがあります。たとえば、一部のプラグインはコンテンツステージングホストでのみ使用されるため、スクリプトはどのホストでも実行でき、そのホストで適切なセットのみを有効にします。スクリプトに時間がかかりすぎる構成は、必要に応じて文書化して手動で複製するだけです。

また、コンテンツステージングサーバーからQAまたはdevホストにデータベースを完全に複製するperlスクリプトもあります。開発者は、現在のすべてのコンテンツが必要な場合、定期的にこれを使用できますが、通常はコードと構成を保持するよりも重要ではありません。スクリプトは次のタスクを実行します。

  • コンテンツステージングサーバーのデータベースのmySQLダンプ、テーブル名の変更、ターゲットサーバーのデータベースへのロード
  • wp-cliを使用して、データベース内のステージングサーバーへの参照を変更し、ターゲットサーバーを参照する
  • ターゲットサーバーのアップロードディレクトリをコンテンツステージングサーバーのアップロードと同期する

データベースを実際にバージョン管理するための有望なソリューションがいくつかありますが、それらはすぐに登場します。VersionPressMergebotは私が知っている2人であり、他にもあるかもしれません。

私はブログでgitとComposer動作するようにWordPressを設定する方法の技術的な詳細を書きました。gitで維持するコードとWordPressコアを明確に分離するには、WordPressコアを独自のディレクトリで実行する必要がありました。WordPress自体を依存関係として扱い、Composerで管理します。


7

私がこれまで見てきた最善の解決策は、Bedrock(https://roots.io/bedrock/)を使用することです。

この質問に対する他の回答(作曲家、およびプラグインを管理するもの)は良い回答です。しかし、Bedrockは、システム化、サポート、文書化、継続的に改善された方法を提供します。これは、独自の方法よりも望ましい方法です。

また、複数のgitリポジトリを作成できることを忘れないでください。テーマ用、開発するカスタムプラグインごと、そしてBedrock / Wordpressインストール自体用の「マスター」です。


「Bedrockは、システム化され、サポートされ、文書化され、継続的に改善される方法を提供します。これは、独自の方法よりも望ましい方法です。」確認できますが、Bedrockは素晴らしいです!Sage(同じ人、Rootsによって開発された)でそれを使用し、チーム全体のカスタム開発はきちんと管理可能です。しゃっくりはまだあり、@ Dan9の回答はより完全ですが、ベッドロックの賞賛を十分に歌うことができません!
-samrap

MVC開発者としては同意しますが、WordPressサイトで行う作業の種類はフロントエンドに大きく依存しているため、Sageでの資産管理のセットアップは、時折のグローバルの悪い習慣に値します。
samrap

0

テーマまたはカスタムプラグインで動作するすべての同じプラグインをインストールすることが絶対に必要な場合は、データベースも共有します。

gitとcomposerを使用して、さまざまな開発環境を最新の状態に保ちます。最新の変更を取得して作曲家を再実行するだけで、準備完了です。


0

まず最初に、WordPressのディレクトリ構造を理解する必要があります。WordPressのディレクトリ構造は、使いやすいものではありませんgit。そのため、かなりgit使いやすいアーキテクチャでこれを使用することをお勧めします。いいえ、パニックする必要はありません。必ずしもこれを作成する必要はありません。そのようなボイラープレートや構造化されたWordPressシステムはたくさんあります。そのうちの1つを選択して、コーディングを開始してください。

さて、きちんと組織化されたコード、または維持可能なコードを書くところまで来てください。私たちは実際にコードをwp-content\themes\your-themeまたはに置きますwp-content\themes\your-theme。そのため、gitフレンドリーなWordPressボイラープレートのほとんどでは、wp-contentパーツが分離されています。そして、主にWordPressリポジトリを取得しcomposerます。これにより、プロジェクト全体がよりクリーンになります。

プラグインの同期も重要な部分です。を通じてプラグインをインストールする方が良いでしょうcomposer。これにより、プロジェクトコードが大幅にクリーンになります。ここでは、WordPressプラグインをインストールする方法の概要を取得しますcomposer

次に、最も重要な部分であるデータベースの同期方法について説明します。以下の2つの方法でもっと簡単にできると思います-

  • すべての開発者は、1つのリモートデータベースを使用する必要があります。そして頻繁にそのバックアップを作成します。
  • WordPressのインポート/エクスポート機能を自動化します。複雑に思えますが、そうではありません。グーグルをやるだけでいいのです。

それがあなたを助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.