質問: gitを使用したサイトの管理 joomlaサイトのビルドを管理するためにgitを使い始めており、いくつかのベストプラクティスのガイダンスを探しています。現状のまま: whmを使用して新しいアカウントをプロビジョニングします。インストール後フックを記述して、goomhubからjoomlaを自動的にダウンロードし、関連するpublic_htmlディレクトリに配置し、データベースとdbユーザーを作成します。 webインターフェースを介してjoomlaを手動でインストールします(現在、これも自動化する方法を探しています) public_htmlの上にベアリポジトリをセットアップします-これは、ユーザーがプッシュおよびプルする場所です。これをoriginと呼びます public_htmlに標準のリポジトリをセットアップする joomla固有の.gitignoreを追加します ベアリポジトリをリモートとして指定します(git remote add origin ../repo.git) git add .、次にgit commit -m"initial j! commit"、次にgit push origin masterを実行して、ベアリポジトリにデフォルトのインストールを取得します。 post-receiveフックをベアリポジトリに追加して、変更をpublic_htmlのリポジトリに自動的にプルします(ベアリポジトリは開発者がローカルの変更をプッシュする場所であるため) 誰かがサーバーで変更を行った場合に備えて、post-updateフックをpublic_htmlのリポジトリに追加します... 現時点では、データベースについてあまり心配していません。私の主な問題は、joomlaファイルの追加/変更を処理することです。明らかに、テンプレートと拡張機能をインストールすると、特定のファイルが追加および削除されます。同様に、joomlaの更新は変更を引き起こします。これらのサーバー上の変更に対処する最良の方法は何ですか?私は、phpgitを使用してgit add .、git commit git push origin masterを実行するonafterrenderなどを実行する小さなプラグインを書くことを考えていました。次に、私のローカルコピーで、pullを実行すると、すべてが実行されます。それとももっと良い方法がありますか?
回答: なぜあなたが裸/公共の構造を設定したのか理解できません。私はpublic_htmlをリポジトリのルートとしてのみ使用し、非常に完全な.gitignoreを使用します(これは、joomla!の新しい更新ごとに更新する必要があります。git statusを使用して、新しいファイルを見つけて追加しますバージョンを取得します)。開発者は開発ブランチにプッシュします。最終的にリリースが承認されると、リリースはマスターに対してリベースされ、テストされて本番環境にプッシュされます。私はフックを使用していませんが、共有したい関連するデータベースパーツをダンプするいくつかのスクリプトがありますが、必要に応じてユーザーにインポートスクリプトを実行させることができます。このようにして、誰かが新しい拡張機能で作業している場合、共有する準備ができるまで、構成を保持します。less/sassを使用する場合は、ポストコミットフックでコンパイルを実行して、サーバーで圧縮フラグが常にオンになるようにすることができます。-更新:.gitignore-すべてのjoomlaで変更される可能性があるため、ここで.gitignoreを共有することはできません!更新。まず、eclipse .project .settingsなど、除外するその他のファイルがconfiguration.phpおよび.htaccessとともにマスター.gitignoreにあることを確認してください。私のマスター.gitignoreは、キャッシュやtmpの代わりに独自のフォルダーに変更を書き込む厄介なコンポーネントを含むサイトでは、次のようになります。さらに、sassを使用します。*/.sass-cache /components/com_sobipro/var/cache/* /components/com_djclassifieds/images/* /components/com_sobipro/tmp/* /components/com_sobipro/var/* /log /._db.sql /logs /stats /components/com_sobipro/tmp/edit/* /.buildpath /.project /.settings /.htaccess /images/icons/* /images/photos/* /images/sobipro/* /images/classifieds/* /administrator/cache/* /tmp/* /configuration.php /index.php /joomla.xml *.txt だから私はそれを(ウェブルートから)コピーすることから始めます:cp /home/_core/.gitignore . 次に、更新パック(完全な更新パッケージ)を展開し、実行しますfind | sed "s/^\.//" >> /home/yoursitefolder/public_html/.gitignore [〜#〜] warning [〜#〜]更新パッケージでのみ、ライブサイトで検索を実行しないでください!いくつかのテストを実行し、手順を完了する前に毎回何が追加されるかをgitステータスで確認し、そのためのbashスクリプトを記述します。これは私が使用しているものですが、要件に適合することは保証されていません100%