だから私は主にWordPressでウェブサイトを自分でデザインして開発しています。ローカルサーバー上のサイトに満足したら、サイトとそのデータベースをWebサーバーにアップロードし、クライアントにサイトに変更を加えさせます。彼/彼女が私にコードまたはWPのバックエンドを変更する必要があるとき、私は通常、それ以降、サイトのリモートバージョンで作業します。これは、ローカルで作業する場合に比べてかなり遅いプロセスです。
私が求めているのは、リモートバージョンのサイトに加えられた変更を同期するローカルバージョンのサイトで作業する方法はあるのでしょうか。このバージョン管理は万が一ですか?
これが私の典型的なワークフローです:
現在のワークフローを改善する方法はありますか?
サーバーへのSSHアクセスがあり、Linuxシェルコマンドに精通している場合は、Capistranoを使用して自動化できます展開プロセス。これは、Rubyに組み込まれている自動展開ツールであり、多くのRuby on Railsプロジェクトで広く使用されています。もちろん、これはRailsのRubyだけに限定されません。他のRubyフレームワーク、および他の言語にもCapistranoを使用できます。
Capistranoが実行する一般的な手順は次のとおりです。
これは、バージョン管理をワークフローにも組み込む必要があることを意味します。これは、作業が楽になるため、実際には便利です。 CapistranoはSVN、Git、Mercurialをサポートしているため、好きなものを使用できます。
別の注意点として、Capistranoは元々Ruby on Railsプロジェクトをデプロイするために構築されているため、PHPで動作するようにカスタマイズする必要があります。 この記事はPHPプロジェクト にCapistranoを使用する方法。
git および svn/Subversion は、これを処理できる一般的なバージョン管理システムです。今ではもっと広く使われているので、gitをお勧めします(最近は誰もが github を持っているようです)。 gitを使用すると、追跡するファイルと追跡しないファイルを選択できます。この場合、リモートとローカルの2つのリポジトリがあります。ローカルで変更を加える場合は、それらをコミットしてから、いくつかのコマンドでリモートサーバーにプッシュできます。これにより、クライアントが以前のバージョンに戻したいと判断した場合や、問題が発生した場合にも、変更が追跡されます。
また、 vim は、ワークフローを改善したい人のための私の最初の提案です(または、そのような場合は emacs )。 vimが上手になれば、中間者をカットしてリモートで非常に効率的に開発できることがよくあります。多くのエディターでは、リモート編集も可能です。 Vimは、Tim Popeによる fugitive.vim プラグインを介してgitとうまく連携します。これにより、gitとvimの効率が合理化されます。
rsync もあります。これはあなたが説明している音のようです。リモートかローカルかに関係なく、ディレクトリの同期を維持します。比較的高速ですが、バージョン管理オプションはありません。